生命周期函数:指的是在某一时刻,组件会自动执行的函数生命周期函数
挂载
componentWillMount
组件即将被挂载的时候执行
render
componentDidMount
组件被挂载之后执行
1 | // 组件即将被挂载的时候执行 |
组件更新
props发生变化
componentWillReceiveProps
当一个组件从父组件接受了参数,只要父组件的render函数被重新执行了,子组件的 componentWillReceiveProps 就会执行(注意:父组件的render函数第一次执行此函数是不会被执行的,只有父组件的render函数不是第一次执行,且子组件从父组件接受到了参数,componentWillReceiveProps才会被执行)
1 | // 当一个组件从父组件接受了参数,只要父组件的render函数被重新执行了,子组件的 componentWillReceiveProps 就会执行 |
shouldComponentUpdate
在组件更新之前执行,返回bool值
componentWillUpdate
shouldComponentUpdate 返回true就执行 componentWillUpdate
render
componentDidUpdate
组件更新完成之后会被执行
states发生变化
- shouldComponentUpdate
- componentWillUpdate
- render
- componentDidUpdate
props发生变化和states发生变化相比,props多了一个componentWillReceiveProps生命周期函数。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15// 在组件更新之前执行,返回bool值
shouldComponentUpdate(){
console.log('shouldComponentUpdate')
return true;
}
// shouldComponentUpdate 返回true就执行 componentWillUpdate
componentWillUpdate(){
console.log('componentWillUpdate')
}
// 组件更新完成之后会被执行
componentDidUpdate(){
console.log('componentDidUpdate')
}
卸载
componentWillUnmount
当子组件被移除的时候会执行1
2
3
4// 当子组件被移除的时候会执行
componentWillUnmount(){
console.log('componentWillUnmount')
}
图解
https://github.com/rexyan/simple_react/tree/%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%E5%87%BD%E6%95%B0