react生命周期

一、生命周期

挂载

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

  • constructor() 如果不初始化 state 或不进行方法绑定,则不需要为 React 组件实现构造函数。
  • static getDerivedStateFromProps()
  • render() 渲染页面。
  • componentDidMount()会在组件挂载后(插入 DOM 树中)立即调用。这里添加网络请求和订阅。如果添加了订阅,请不要忘记在 componentWillUnmount()里取消订阅

注意:

下述生命周期方法即将过时,在新代码中应该避免使用它们

更新

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

注意:

下述方法即将过时,在新代码中应该避免使用它们

卸载

当组件从 DOM 中移除时会调用如下方法:

  • componentWillUnmount() 会在组件卸载及销毁之前直接调用。在此方法中执行必要的清理操作,例如,清除 timer,取消网络请求或清除在 componentDidMount()中创建的订阅等。componentWillUnmount()中不应调用 setState(),因为该组件将永远不会重新渲染。组件实例卸载后,将永远不会再挂载它。

错误处理

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

image.png

组件将要挂载时触发的函数:componentWillMount
组件挂载完成时触发的函数:componentDidMount
是否要更新数据时触发的函数:shouldComponentUpdate
将要更新数据时触发的函数:componentWillUpdate
数据更新完成时触发的函数:componentDidUpdate
组件将要销毁时触发的函数:componentWillUnmount
父组件中改变了props传值时触发的函数:componentWillReceiveProps

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容