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开始渲染之前

参考链接:https://segmentfault.com/a/1190000008147645

posted @ 2019-08-17 14:43  小小鸟月亮船  阅读(101)  评论(0编辑  收藏  举报