react 学习之路一 -- v16生命周期

用了react一年,很多东西用的也是迷迷糊糊的,这里报了来自于拉钩教育的修言老师的课程来系统的学习一下react。下面算是我对于课程的笔记记录以及自我的一点理解吧。在此作出记录以及分享。如果想要一起加入学习之路的可以 点击这里 或者下面评论里说出来~ 共勉!
上一篇 v15生命周期

上一篇我们讲了react 15的生命周期,接下来我们就再讲讲react 16的。
对了在讲之前啊,我这里放一个在官网的对于v16的做的一个流程图,对理解生命周期的执行有很大的帮助。

还是三个阶段:

一、Mounting 阶段:组件的初始化渲染(挂载)

  进入constructor
  getDerivedStateFromProps方法执行
  render方法执行
  componentDidMount方法执行
  
  React 15 生命周期和 React 16.3 生命周期在挂载阶段的主要差异在于,
  废弃了 componentWillMount,新增了 getDerivedStateFromProps。

  getDerivedStateFromProps 这个 API,其设计的初衷不是试图替换掉componentWillMount,
  而是试图替换掉 componentWillReceiveProps,
  因此它有且仅有一个用途:使用 props 来派生/更新 state。

  getDerivedStateFromProps 的返回值之所以不可或缺,
  是因为 React 需要用这个返回值来更新(派生)组件的 state。
  因此当你确实不存在“使用 props 派生 state ”这个需求的时候,
  最好是直接省略掉这个生命周期方法的编写,否则一定记得给它 return 一个 null。

二、Updating 阶段:组件的更新

  //重点说一下下面这个getDerivedStateFromProps(若文字不够直观,可以看文初的流程图):
  //16.3:只会在New props时执行。
  //16.4:New props,setState,forceUpdate 都会执行
  getDerivedStateFromProps方法执行
  shouldComponentUpdate方法执行
  render方法执行
  getSnapshotBeforeUpdate方法执行
  componentDidUpdate方法执行

  React 16.4 的挂载和卸载流程都是与 React 16.3 保持一致的,差异在于更新流程上:
  在 React 16.4 中,任何因素触发的组件更新流程(包括由 this.setState 和 forceUpdate 触发的更新流程)都会触发 getDerivedStateFromProps;
  而在 v 16.3 版本时,只有父组件的更新会触发该生命周期。

三、Unmounting 阶段:组件的卸载

  componentWillUnmount

done.

上一篇:v15生命周期

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值