
2025-04-28 日报 Day170

今日的鸡汤
努力寻求最大公约数、画出最大同心圆。
今日学习内容
1、https://www.youtube.com/watch?v=EVFZazcxAbo
今日笔记
1、React生命周期
2、React生命周期的本质: 组件的“灵魂”和“躯干”
渲染工作流: 指的是从组件数据改变到组件实际更新发生的过程
Warning: componentReceiveProps并不是由props的变化触发的,而是由父组件的更新触发
componentWillUnmount:
- 组件在父组件中被移除
- 组件中设置了key属性,且key值发生变化
3、React16生命周期工作流详解

https://projects.wojtekmaj.pl/react-lifecycle-methods-diagram/
getDerivedStateFromProps: 组件的props发生变化时,触发该方法
该方法不是componentWillMount的替代品,其对state的更新动作并非覆盖式的更新 而是针对某个属性的定向更新
为什么要用getDerivedStateFromProps代替componentWillReceiveProps?
getDerivedStateFromProps是作为一个试图代替componentWillReceiveProps的API而出现的
getDerivedStateFromProps 不能完全和 componentWillReceiveProps画等号
消失的componentWillUpdate与新增的 getSnapshotBeforeUpdate
getSnapshotBeforeUpdate的返回值会作为第三个参数给到componentDidUpdate
它的执行时机是在render 方法之后,真实 DOM 更新之前
同时获取到更新前的真实DOM 和更新前后的state&props 信息
4、React16为何两次求变: Fiber架构
Fiber是React16对React核心算法的重写
Fiber会使原本同步的渲染过程变成异步的
在React16之间 每次更新组件都会创建一个虚拟DOM树,通过与上一次的虚拟DOM树进行对比实现定向更新,这一过程是递归的过程,调用栈非常深