React应用在初始化和更新的过程中,会经过一系列的逻辑,React在不同的逻辑时期会执行不同的生命周期函数,用来给我们做一些处理。
对于初次挂载来说,也就是整个React应用初始化时会执行componentWillMount和componentDidMount生命周期函数
对于更新应用时,比如父组件修改了子组件的props、组件执行了setState()更改了state, 还有组件所在的context环境发生变化时,都会执行更新操作,对于更新来说,会执行componentWillUpdate和componentDidUpdate生命周期函数
这几个生命周期函数的用法如下:
componentWillMount() ;组件将要挂载时触发的函数
componentDidMount() ;组件挂载完成时触发的函数
componentWillUpdate(newProps,newState,newContext) ;组件将要更新数据时触发的函数,参数如下
newProps ;新的props
newState ;新的State
newContext ;新的context
componentDidUpdate(newProps,newState,Snapshot) ;组件数据更新完成时触发的函数,参数如下:
newProps ;新的props
newState ;新的State
Snapshot ;由componentWillReceiveProps生命周期返回的快照
对于componentWillMount和componentDidMount来说它们是没有参数的,而且一个组件挂载时只会执行一次。
举个栗子,需求:定义了两个组件:App组件和Person组件,App组件引用了Person组件并且传入了一个名为no的props,另外在App组件和Person组件内都定义了一个button按钮,分别用于修改Person组件的props和state变化,另外我们在Person组件内分别定义了上面讲解到的4个生命周期函数,代码如下: