生命周期
挂载:
constructor作用:
1、通过给this.state赋值对象来初始化内部state
2、为事件处理函数绑定实例
static getDerivedStateFromProps:调用render方法之前调用,并且在初始化挂载以及后续更新时都会被调用。意义是从props中获取数据给自身的state,具有两个形参
--nextProps:最新的props对象
--prevState:上一次的state对象
使用之前必须初始化state
会返回一个state或者null
如果返回state,则表示将会更新数据到自身的state
如果返回null,则表示数据不会发生改变
使用场景:
-- 统一管理数据,将所有数据(外部数据,内部数据)都放到state中管理
-- 在1的基础上实现props数据可写
render:渲染函数
componentDidMount:组件挂载后立即调用,依赖于DOM节点的初始化应该放在这里,
1、如网络请求获取数据
2、添加订阅,要在componentWillUnmount里取消订阅
更新:
static getDervedStateFromProps
shouldComponentUpdate:决定组件是否更新
使用意义:性能优化
该周期函数必须返回bool值,true表示允许更新,false不允许更新,
触发时机:
--父传递来props发生改变
--自身state发生改变
可以被PureComponent替代
render
getSnapshotBeforeUpdate:更新之前获取快照,写一些更新之前的操作,必须和componentDidUpdate一起使用
componentDidUpdate:第三形参就是getSnapshotBeforeUpdate的返回值
卸载:
componentWillUnmount:卸载周期函数,进行一些副作用代码的清理,例如清理定时器,清理网络请求等