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

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阶段的生命周期重复执行

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。