1
0
Fork 0
Browse Source

vault backup: 2022-05-10 16:12:24

master
YuJian 3 years ago
parent
commit
418619934f
  1. 4
      React 的源码深入/React 的流程解析 - Fiber 递归/React 的深入探索 - beginWork.md

4
React 的源码深入/React 的流程解析 - Fiber 递归/React 的深入探索 - beginWork.md

@ -31,7 +31,9 @@ if (current !== null) {
} }
``` ```
在进入正式 beginWork 阶段之前,会先对传入的 current 节点进行空值判断,根据 current 是否为空进入不同的处理逻辑,**那么为什么需要判断 current 是否为空呢?答案是为了性能,前面说到 beginWork 函数的主要任务就是给当前传入的 Fiber 阶段创建它的第一个子 Fiber 节点,如果在上一次渲染时** 在进入正式 beginWork 阶段之前,会先对传入的 current 节点进行空值判断,根据 current 是否为空进入不同的处理逻辑。
**那么为什么需要判断 current 是否为空呢?答案是为了性能,前面说到 beginWork 函数的主要任务就是给当前传入的 Fiber 节点创建它的第一个子 Fiber 节点,要是在上一次渲染时创建的 Fiber 节点和本次渲染的 Fiber 节点并没有发生变化,那么还需要再次创建一个新的 Fiber 节点吗?肯定是不需要的,我们只需要将这个依旧存在的并没有发生变化的 Fiber 节点拿过来复用就行了,而这段逻辑正是在前 beginWork 阶段中判断并执行的**
这一段代码的主要目的是为了赋值 didReceiveUpdate 变量, 这一段代码的主要目的是为了赋值 didReceiveUpdate 变量,
### current 不为空 ### current 不为空

Loading…
Cancel
Save