React(二)为什么React16要更改组件什么周期

2020-11-05  本文已影响0人  夕阳不西下_

1.弃用componentWillMount,componentWillUpdate,componentWillReceiveProps

新增getDerivedStateFromProps(使用 props 来派生/更新 state。)getSnapshotBeforeUpdate

2.1>废弃componentWillMount原因:异步请求,导致白屏。

2>废弃componentReceiveProps原因:当父组件的的无关子组件状态机改变时,也会触发子组件的componentReceiveProps,如果只想处理更改,需要比较

3>废弃componentWill**原因:在fiber异步渲染机制下,会导致严重bug。比如在componentWill**发起付款请求,当被重复执行时,就会发起多个付款请求

4>react15在componentWillReceiveProps  和 componentWillUpdate滥用setState导致死循环

3.render react15单个元素--->react16元素数组或字符串

4.组件销毁(1>key值不一样。2>被父组件移除)

5.本质变更:Fiber架构会使原本同步的渲染过程变成异步

fiber机制下,render阶段是被允许暂停、终止和重启的。被重启的形式是重新启动,导致render阶段的生命周期重复执行

所以被废弃都可能被重复执行

上一篇 下一篇

猜你喜欢

热点阅读