React生命周期

234 阅读1分钟

三个阶段

  • 挂载阶段:已插入真实DOM(Mounting)
  • 更新阶段:正在被重新渲染(Updating)
  • 卸载阶段:已移出真实DOM(Unmounting)

挂载

组件实例被创建并插入DOM中

  • constructor():组件挂载之前
  • getDeriveStateFromProps():调用render方法之前调用,并且在初始挂载及后续更新时都会被调用
  • render()
  • componentDidMount():组件挂载后(插入DOM树中)立即调用

更新

当组件的state或props发生变化时,触发组件更新

  • getDerivedStateFromProps():在调用 render 方法之前调用,并且在初始挂载及后续更新时都会被调用。根据 shouldComponentUpdate() 的返回值,判断 React 组件的输出是否受当前 state 或 props 更改的影响
  • shouldComponentUpdate():当 props 或 state 发生变化时,在渲染执行之前被调用
  • render():class 组件中唯一必须实现的方法
  • getSnapshotBeforeUpdate():在最近一次渲染输出(提交到 DOM 节点)之前调用
  • componentDidUpdate():在更新后会被立即调用

卸载

当组件从DOM中移除时会调用

componentWillUnmount():在组件卸载及销毁之前直接调用

对比