React v16 生命周期

在React更新到V16版本后,我们会发现React新加了一些生命周期并且即将停用一些生命周期,今天我们就来follow最新的React 16的生命周期。

官方文档

放出官方图


image.png
image.png
  • 即将过期的生命周期 (慎用)

componentWillMount()

componentWillReceiveProps()

componentWillUpdate()

  • 常用的生命周期

当组件实例被创建并插入 DOM 中时,其生命周期调用顺序如下:

  1. constructor()
  2. render()
  3. componentDidMount()

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

  1. static getDerivedStateFromProps()
  2. shouldComponentUpdate()
  3. render()
  4. getSnapshotBeforeUpdate()
  5. componentDidUpdate()
  • 注意

  1. render() 函数应该为纯函数,这意味着在不修改组件 state 的情况下,每次调用时都返回相同的结果,并且它不会直接与浏览器交互。
    如需与浏览器进行交互,请在 componentDidMount() 或其他生命周期方法中执行你的操作。保持 render() 为纯函数,可以使组件更容易思考。
  2. 避免将 props 的值复制给 state 尤其是引用了redux的情况下
constructor(props) {
 super(props);
 // 不要这样做 当你更新了props是并不会影响state
 this.state = { color: props.color };
}
  1. componentDidMount() 会在组件挂载后(插入 DOM 树中)立即调用。所以可以在这里Ajax
  2. 慎在componentDidMount()里调用this.setSate()会重复渲染建议在constructor里初始化
  3. 首次渲染不会执行componentDidUpdate()
  4. 当组件更新后,可以在componentDidUpdate对 DOM 进行操作。如果你对更新前后的 props 进行了比较,也可以选择在此处进行网络请求。
  5. 不要将 props “镜像”给 state,请考虑直接使用 props
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 作为一个合格的开发者,不要只满足于编写了可以运行的代码。而要了解代码背后的工作原理;不要只满足于自己的程序...
    六个周阅读 12,712评论 1 33
  • React 16 生命周期 React 16.3 新增的生命周期方法 逐渐废弃的生命周期方法: 一般将生命周期分成...
    Allan要做活神仙阅读 3,660评论 0 0
  • 生命周期流程图简单如下: 组件让你把用户界面分成独立的,可重复使用的部分,并且将每个部分分开考虑。React.Co...
    Simple_Learn阅读 4,768评论 0 0
  • 说在前面 关于 react 的总结过去半年就一直碎碎念着要搞起来,各(wo)种(tai)原(lan)因(le)。心...
    陈嘻嘻啊阅读 11,824评论 7 41
  • 今天学习《天上的街市》,本来准备了一课时的课件,却总觉得不顺手。仿佛被课件束缚牵制,为了能在一节课放完课件上的东西...
    改变自己369阅读 2,778评论 0 6

友情链接更多精彩内容