React 生命周期

227 阅读1分钟

组件的生命周期

挂载

组件实例被创建并在插入DOM中时(注意:不是之后,也不是之前,是插入时。),生命周期如下:

  • constructor()
  • static getDerivedStateFromProps()
  • render()
  • componentDidMount()

更新

当组件的props或state发生变化时触发更新。更新时生命周期调用如下:

  • static getDerivedStateFromProps()
  • shouldComponentUpdate()
  • render()
  • getSnapshotBeforeUpdate()
  • componentDidUpdate()

卸载

组件从DOM中移除时,生命周期如下:

  • componentWillUnmount()

错误处理

当渲染过程,生命周期,或自组件构造函数中抛出错误时,会调用如下方法:

  • static getDerivedStateFromError()
  • componentDidCatch()

React生命周期图

image.png

Vue生命周期图

image.png

对比

对比生命周期图可以看出:

  • react的设计是将生命周期按照功能分成了三个部分,每个部分都有自己的调用函数。
  • vue的设计是将生命周期按照时间的方式进行排列调用的,更像是从时间开始到结束的过程。 所以在学习两个框架的时候要注意区分,不要按照一种思路学习,而是两种不同思路学习。

总结

  • constructor中不能使用setState修改state
  • componentDidMount:发起网络请求获取数据,添加订阅。 这里暂时总结这两个,之后会补充更多的相关注意事项。