2025-04-28 日报 Day170

2025-04-28 日报 Day170

Yuyang 前端小白🥬

今日的鸡汤

努力寻求最大公约数、画出最大同心圆。

今日学习内容

1、https://www.youtube.com/watch?v=EVFZazcxAbo

今日笔记

1、React生命周期

image-20250614075947244

2、React生命周期的本质: 组件的“灵魂”和“躯干”

渲染工作流: 指的是从组件数据改变组件实际更新发生的过程

image-20250614080800212

Warning: componentReceiveProps并不是由props的变化触发的,而是由父组件的更新触发

componentWillUnmount:

  • 组件在父组件中被移除
  • 组件中设置了key属性,且key值发生变化
    3、React16生命周期工作流详解

![image-20250614140841246](../../../../../Library/Application Support/typora-user-images/image-20250614140841246.png)

https://projects.wojtekmaj.pl/react-lifecycle-methods-diagram/

getDerivedStateFromProps: 组件的props发生变化时,触发该方法
该方法不是componentWillMount的替代品,其对state的更新动作并非覆盖式的更新 而是针对某个属性的定向更新

image-20250614141957043

为什么要用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树进行对比实现定向更新,这一过程是递归的过程,调用栈非常深

此页目录
2025-04-28 日报 Day170