-
constructor
:初始化state
和方法绑定,使用this.state
给state
赋值 -
getDerivedStateFromProps()
|UNSAFE_componentWillMount()
(即将被废弃):会在调用 render 方法之前调用,并且在初始挂载及后续更新时都会被调用。它应返回一个对象来更新 state,如果返回 null 则不更新任何内容。 -
render()
:渲染组件(如果shouldComponentUpdate()
返回false,则不会调用render()
) -
componentDidMount()
:执行网络请求获取数据,添加订阅
更新:(当state改变之后引发修改UI,通过的生命周期函数)
-
getDerivedStateFromProps()
|UNSAFE_componentWillReceiveProps
(即将被废弃) 组件接收到新props调用 -
shouldComponentUpdate
:当组件接收到新属性,或者组件的状态发生改变时触发。组件首次渲染时并不会触发,性能优化 -
getSnapshotBeforeUpdate()
:返回值将作为componentDidUpdate()
的第三个参数“snapshot”
参数传递。否则此参数将为undefined
。UNSAFE_componentWillUpdate()
(即将被废弃):组件更新调用,可以修改state值 -
comonentDidUpdate
:执行网络请求,当props
未改变则不会触发该函数,也就不会发送网络请求(当shouldComponentUpdate()
返回false,则不会调用componentDidUpdate()
)
销毁:
componentWillUnmount()
:组件卸载及销毁之前调用(取消订阅,清楚定时器,取消网络请求)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190810153757213.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pob25ncXdfMDA=,size_16 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 ,color_FFFFFF,t_70)
[](()2.不常用的生命周期函数
静态方法和实例方法
静态方法:直接挂载在class类上,或者使用新的关键字static,实例无法直接访问该方法。
实例方法:挂载在this上或者挂载在prototype上,class类不能直接访问该方法,使用new关键字实例化之后,实例可以访问该方法。
-
shouldComponentUpdate()
:为性能优化存在 -
static getDerivedStateFromProps()
:返回一个对象来更新 state,如果返回 null 则不更新任何内容。 -
getSnapshotBeforeUpdate()
:会在组件即将挂载时调用。用途:有一些状态,比如网页滚动位置,我不需要它持久化,只需要在组件更新以后能够恢复原来的位置即可。
[](()3.捕获错误的生命周期函数
static getDerivedStateFromError()
:在后代组件抛出错误后被调用。 它将抛出的错误作为参数,并返回一个值以更新 state