React组件的生命周期
本文基于React17版本开始的新的生命周期。
React组件的生命周期分为三个阶段:Mounting -> Updating -> Unmounting
Mounting
- 调用组件的构造函数
constructor()
。 - 调用
getDerivedStateFromProps()
,在Mounting和Updating阶段都会被调用。 - 调用
render()
函数,组件初始化一定会调用的只有render函数。 - 组件挂载完毕。
- 触发
componentDidMount()
钩子函数。
Updating
组件的 props
或者 state
发生变化,组件就会更新。
- 调用
getDerivedStateFromProps()
,根据shouldComponentUpdate()
的返回值,判断组件的输出是否受当前state或props更改的影响。 - 调用
shouldComponentUpdate()
。 - 调用
render()
函数,唯一必须会被调用的函数。 - 调用
getSnapshotBeforeUpdate()
,在最近一次渲染输出之前调用。 - 组件更新完毕。
- 调用
componentDidUpdate()
,在组件更新后会被立即调用。
Unmounting
- 调用
componentWillUnmount()
钩子函数,在组件卸载及销毁之前直接调用。 - 组件被卸载或者销毁。
可以看出react组件生命周期与vue的组件生命周期有区别但是不大。