万物皆数 發表於 2019-6-10 11:17:00

React生命周期函数

<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">/*</span>
<span style="color: rgba(0, 128, 0, 1); text-decoration: underline">https://reactjs.org/docs/react-component.html</span><span style="color: rgba(0, 128, 0, 1)">


React生命周期函数:

    组件加载之前,组件加载完成,以及组件更新数据,组件销毁。

    触发的一系列的方法 ,这就是组件的生命周期函数


组件加载的时候触发的函数:

    constructor 、componentWillMount、 render 、componentDidMount

组件数据更新的时候触发的生命周期函数:

    shouldComponentUpdate、componentWillUpdate、render、componentDidUpdate


你在父组件里面改变props传值的时候触发的:

    componentWillReceiveProps


组件销毁的时候触发的:

    componentWillUnmount


必须记住的生命周期函数:


    *加载的时候:componentWillMount、 render 、componentDidMount(dom操作)

    更新的时候:componentWillUpdate、render、componentDidUpdate

    *销毁的时候: componentWillUnmount




</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">


import React, { Component } </span><span style="color: rgba(0, 0, 255, 1)">from</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">react</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;

</span><span style="color: rgba(0, 0, 255, 1)">class</span><span style="color: rgba(0, 0, 0, 1)"> Lifecycle extends Component {
    constructor(props) {

      console.log(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">01构造函数</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      super(props);
      </span><span style="color: rgba(0, 0, 255, 1)">this</span>.state =<span style="color: rgba(0, 0, 0, 1)"> {

            msg:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">我是一个msg</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
         };
    }

    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">组件将要挂载的时候触发的生命周期函数</span>
<span style="color: rgba(0, 0, 0, 1)">    componentWillMount(){

      console.log(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">02组件将要挂载</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
    }
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">组件挂载完成的时候触发的生命周期函数</span>
<span style="color: rgba(0, 0, 0, 1)">    componentDidMount(){

      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">dom操作放在这个里面    请求数据也放在这个里面</span>
<span style="color: rgba(0, 0, 0, 1)">
      console.log(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">04组件将要挂载</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
    }


    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">是否要更新数据如果返回true才会执行更新数据的操作</span>
<span style="color: rgba(0, 0, 0, 1)">    shouldComponentUpdate(nextProps, nextState){
      console.log(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">01是否要更新数据</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);

      console.log(nextProps);

      console.log(nextState);

      </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
    }

    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">将要更新数据的时候触发</span>
<span style="color: rgba(0, 0, 0, 1)">
    componentWillUpdate(){
      console.log(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">02组件将要更新</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
    }
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">组件更新完成</span>
<span style="color: rgba(0, 0, 0, 1)">    componentDidUpdate(){
      console.log(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">04组件数据更新完成</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
    }

    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 你在父组件里面改变props传值的时候触发的</span>
<span style="color: rgba(0, 0, 0, 1)">
    componentWillReceiveProps(){

      console.log(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">父子组件传值,父组件里面改变了props的值触发的方法</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
    }

    setMsg</span>=()=&gt;<span style="color: rgba(0, 0, 0, 1)">{

      </span><span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.setState({

            msg:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">我是改变后的msg的数据</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
      })
    }

    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">组件销毁的时候触发的生命周期函数   用在组件销毁的时候执行操作</span>
<span style="color: rgba(0, 0, 0, 1)">    componentWillUnmount(){

            console.log(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">组件销毁了</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
    }
    render() {
      console.log(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">03数据渲染render</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      
      </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> (
            </span>&lt;div&gt;<span style="color: rgba(0, 0, 0, 1)">

                生命周期函数演示</span>--- {<span style="color: rgba(0, 0, 255, 1)">this</span>.state.msg}-----{<span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.props.title}

                </span>&lt;br /&gt;
                &lt;br /&gt;

                &lt;button onClick={<span style="color: rgba(0, 0, 255, 1)">this</span>.setMsg}&gt;更新msg的数据&lt;/button&gt;
            &lt;/div&gt;<span style="color: rgba(0, 0, 0, 1)">
      );
    }
}

export </span><span style="color: rgba(0, 0, 255, 1)">default</span> Lifecycle;</pre>
</div>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/wyanblog/p/10996655.html
頁: [1]
查看完整版本: React生命周期函数