react生命周期
一、生命周期
挂载
当组件实例被创建并插入 DOM 中时,其生命周期调用顺序如下:
-
constructor()
如果不初始化 state 或不进行方法绑定,则不需要为 React 组件实现构造函数。 static getDerivedStateFromProps()
-
render()
渲染页面。 -
componentDidMount()
会在组件挂载后(插入 DOM 树中)立即调用。这里添加网络请求和订阅。如果添加了订阅,请不要忘记在componentWillUnmount()
里取消订阅
注意:更新 【react生命周期】当组件的 props 或 state 发生变化时会触发更新。组件更新的生命周期调用顺序如下:
下述生命周期方法即将过时,在新代码中应该避免使用它们:
UNSAFE_componentWillMount()
static getDerivedStateFromProps()
shouldComponentUpdate()
根据 shouldComponentUpdate() 的返回值,决定是否执行UNSAFE_componentWillUpdate()
,render()
和componentDidUpdate()
。
render()
渲染页面。
getSnapshotBeforeUpdate()
componentDidUpdate()
会在更新后会被立即调用。首次渲染不会执行此方法。当组件更新后,可以在此处对 DOM 进行操作。如果你对更新前后的 props 进行了比较,也可以选择在此处进行网络请求。(例如,当 props 未发生变化时,则不会执行网络请求)。
注意:卸载 当组件从 DOM 中移除时会调用如下方法:
下述方法即将过时,在新代码中应该避免使用它们:
UNSAFE_componentWillUpdate()
UNSAFE_componentWillReceiveProps()
-
componentWillUnmount()
会在组件卸载及销毁之前直接调用。在此方法中执行必要的清理操作,例如,清除 timer,取消网络请求或清除在componentDidMount()
中创建的订阅等。componentWillUnmount()
中不应调用 setState(),因为该组件将永远不会重新渲染。组件实例卸载后,将永远不会再挂载它。
static getDerivedStateFromError()
componentDidCatch()
文章图片
image.png
组件将要挂载时触发的函数:componentWillMount
组件挂载完成时触发的函数:componentDidMount
是否要更新数据时触发的函数:shouldComponentUpdate
将要更新数据时触发的函数:componentWillUpdate
数据更新完成时触发的函数:componentDidUpdate
组件将要销毁时触发的函数:componentWillUnmount
父组件中改变了props传值时触发的函数:componentWillReceiveProps
推荐阅读
- 活着就是生命的全部意义
- 生命过客——第10章|生命过客——第10章 初为人母
- 生命的活力!2019-05-04好事
- 生命中最迷人的部分轻拿轻放
- react|react 安装
- 日更82/365珍视生命中的每一刻
- 克里希那穆提《生命书》新译(8月15日)(心与念的二元分裂)
- 投资最重要的事之七——关注周期
- 积极探索|积极探索 绽放生命 ???——心心相印计划:青少年心理工作研讨小组全国大型公益行动第二次活动包头市青山区分校圆满成功
- React.js学习笔记(17)|React.js学习笔记(17) Mobx