生命周期函数

1)构造函数
不会因为props的改变而重新执行,每一个组件的构造器仅仅会执行一次。

2)生命周期函数:

①componentWillMount、componentDidMount:
上树之前、上树之后。都只执行一次,不会因为props改变而执行

②shouldComponentUpdate:决定组件是否要被更新。
该方法在初始化渲染的时候不会调用,而是在props改变或者state被改变的时候执行,此时可以返回true、false来决定视图与否。
特别注意,这个生命周期收到两个参数,nextProps和nextState。所以此时就可以根据nextProps和现在的情形比较来决定视图是否更新。一般的,这里面不设置state,因为是设置state而引发的这个函数执行。

③componentWillUpdate、componentDidUpdate:
组件更新之前、之后执行的。如果shouldComponentUpdate返回了false,此时这两个生命周期都不会执行。
该方法在初始化渲染的时候不会调用,而是在props改变或者state被改变的时候执行。接受两个参数,nextProps和nextState。这里不能设置state,否则导致死循环。

④componentWillReceiveProps :组件接受了新的参数的时候使用。
需要注意的是,提供一个实参,就是新props。nextProps才是新参数,而this.props是老参数。

4) render函数:三兄弟的改变一定会重新使render函数执行。再次强调,有connect的函数和没有connect的函数分开看。

constructor
componentWillMount   //上树之前,只执行一次,不会因为props改变而执行
render
componentDidMount   //上树之后,只执行一次,不会因为props改变而执行
componentWillReceiveProps //组件接受了新的参数的时候使用。
//提供一个实参,就是新propsnextProps才是新参数,而this.props是老参数。`
shouldComponentUpdate //决定组件是否要被更新。初始化渲染的时候不会调用,而是在props改变或者state被改变的时候执行
componentWillUpdate   //组件更新之前,初始化渲染的时候不会调用,而是在props改变或者state被改变的时候执行。
render
componentDidUpdate    //组件更新之后,初始化渲染的时候不会调用,而是在props改变或者state被改变的时候执行。

猜你喜欢

转载自blog.csdn.net/qq_43137725/article/details/82596574