生命周期forceUpdate流程

简介: 生命周期forceUpdate流程

forceUpdate强制更新,就是不需要经过阀门,直接对render进行更改


想要对其进行修改验证,可以先将阀门关闭,然后创建force对象


shouldComponentUpdate(){
                console.log("shouldComponentUpdate");
                return false;
                // 在这里开启TRUE那么就返回true,返回true那么就返回false
            }
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./">
</head>
<body>
    <div id="test"></div>
    <script src="./react-resource/react.development.js"></script>
    <script src="./react-resource/react-dom.development.js"></script>
    <script src="./react-resource/babel.min.js"></script>
    <script src="./react-resource/prop-types.js"></script>
    <script type="text/babel">
        class Count extends React.Component{
            // 构造器初始化
            state={count:0};
            constructor(props){
                console.log("constructor");
                super(props);
                this.state={count:0};
            }
            // 组件挂载完毕的输出
            componentDidMount(){
                console.log("componentDidMount");
            }
            add=()=>{
                const {count}=this.state;
                this.setState({count:count+1});
            }
            // 组件将要挂载的钩子
            componentWillMount(){
                console.log("componentWillMount");
            }
            death=()=>{
                ReactDOM.unmountComponentAtNode(document.getElementById("test"))
            }
            componentWillUnmount(){
                console.log("componentWillUnmount");
            }
            // 创建组件阀门
            shouldComponentUpdate(){
                console.log("shouldComponentUpdate");
                return false;
                // 在这里开启TRUE那么就返回true,返回true那么就返回false
            }
            // 组件将要更新的钩子
            componentWillUpdaye(){
                console.log("componentWillUpdate");
            }
            // 组件已经更新完毕的钩子
            componentDidUpdate(){
                console.log("componentDidUpdate");
            }
            force=()=>{
                this.forceUpdate();
            }
            render(){
                console.log("render");
                const {count}=this.state;
                return (
                    <div>
                        <h2>当前求和为:{count}</h2>
                        <button onClick={this.add}>点我加一</button>
                        <button onClick={this.add}>点我加一</button>
                        <button onClick={this.force}>强制更新</button>
                    </div>
                )
            }
        }
        ReactDOM.render(<Count/>,document.getElementById("test"));
    </script>
</body>
</html>

相关文章
|
5月前
|
小程序 JavaScript 开发者
小程序生命周期
小程序生命周期
30 1
|
2月前
|
存储 安全 测试技术
|
2月前
|
JavaScript 前端开发
生命周期
【8月更文挑战第25天】
26 0
|
2月前
NettyHandler 常用生命周期方法
NettyHandler 常用生命周期方法
15 0
|
5月前
|
缓存 JavaScript
onActivated 生命周期的使用和介绍
onActivated 生命周期的使用和介绍
286 3
|
5月前
|
弹性计算 数据库
生命周期挂钩概述
生命周期挂钩概述
47 0
|
5月前
|
小程序 前端开发 API
小程序的生命周期以及页面生命周期
小程序的生命周期以及页面生命周期
56 0
|
11月前
|
小程序 UED
小程序的生命周期讲解
小程序的生命周期讲解
56 0
IT服务生命周期
IT服务生命周期
287 0
|
存储 消息中间件 Java
设计与思考,关于资源和生命周期
在工作中,经常会看到或者用到池化技术,例如数据库连接池、线程池、内存池等等。这类池化技术在很多经典框架中都存在,并且是设计中的重要部分。
175 0