react生命周期
初始化阶段:
设置组件的默认属性
设置组件的初始化状态
componentWillMount
render
componentDidMount
运行时:
componentWillReceiveProps 触发时机:已经挂载的组件接收到新的props时触发,即使传进来的props没有发生改变也会触发这个生命周期,所以需要比较当前的props和下一次次的props,使用this.setstate()来改变this.state的值
shouldComponentUpdate 触发时机:接收到新的state和props的时候,返回bool值,现在推荐使用pureComponent代替
componentWillUpdate 触发时机: 在state和props发生改变或者shouldComponentUpdate返回值为true的时候,注意不要在里面调用this.setState(),死循环
componnentDidUpdate 触发时机:在发生更新或者componentWillUpdate触发后,
销毁阶段
componentWillUnmount 触发时机: 页面销毁前
PureComponent,纯组件,提高性能、少写shouldComponnetUpdate,与之前的状态进行浅比较,当改动的是引用数据的时候,并不会触发更新,慎用
16.4新的生命周期
getDerivedStateFromProps 触发时机,页面rerender,获取新的props和state的时候,配合componentDidUpdate可以实现componentWillReceiveProps功能
getSnapshotBeforeUpdate 触发时机,render之后,dom开始渲染之前