react的componentWillReceiveProps使用getDerivedStateFromProps

该生命周期一般用于: 当父级组件传递给子组件的props发生改变时,子组件要做一些事情。在该生命周期中可以根据参数中的nextProps判断与当前的props是否不同,是的话可以进行setstate。
外层父级setstate会触发子组件的componentDidUpdate,如果这时子组件在componentWillReceiveProps中也setstate的话,也只会触发一次子组件的componentDidUpdate、shouldComponentUpdate、componentWillUpdate,
因为react的setstate是事务机制,是批量更新机制,并不会立马更新一个state,在同一个事务内state中同一属性后者会覆盖前者,只有在该事务结束后才会setstate。

static getDerivedStateFromProps(nextProps, PrevState)该生命后期会在组件初始化时执行(也就是进入到componentdidmount这个过程中),在组件更新时也会执行,在初始时也就是进入到componentdidmount这个过程中,PrevState指的是初始化时的state也就是
constructor(){}函数中的最原始的state。在更新流程中,如果是父组件props改变触发的该生命周期,那么该PrevState还是该组件中当前的state,如果是子组件自身通过setstate触发的自身的该生命周期的话,那么该PrevState是nextState也就是setstate中要设置的那个state,就是说此时传入到该生命周期中的PrevState已经不是之前的了,是已经更新过的state了。getDerivedStateFromProps可以配合redux的mapstatetopprops使用,初始化的时候(也就是组件首次加载进入componentdidmount的过程)该生命周期中是可以拿到通过mapstatetopprops函数传递到组件上的props的,也就是说该生命周期不仅能拿到组件人为写的props,也能拿到redux中mapstatetopprops函数将state映射到组件上的props

https://www.jianshu.com/p/b331d0e4b398
https://www.cnblogs.com/danceonbeat/p/6993674.html

https://blog.csdn.net/weixin_34007886/article/details/87997179

https://juejin.im/post/5cf0e961f265da1b8e7085e6 掘金的

https://segmentfault.com/a/1190000021183529

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值