|
|
@ -16,7 +16,9 @@ React 的首屏渲染时会交由 createWorkInProgress 函数生成 WorkInProgre |
|
|
|
|
|
|
|
|
|
|
|
如果探索到了可达的最后一个子元素,那么就会结束探索阶段,进入回溯阶段:执行completeWork 函数逻辑。 |
|
|
|
如果探索到了可达的最后一个子元素,那么就会结束探索阶段,进入回溯阶段:执行completeWork 函数逻辑。 |
|
|
|
|
|
|
|
|
|
|
|
completeWork 负责深度优先遍历中的回溯阶段,**它执行在递归节点的 Fiber 创建之后,主要负责完善创建好的 Fiber 节点和插入其真实 DOM 树**,首屏渲染中首先进入该函数的可能是 |
|
|
|
completeWork 负责深度优先遍历中的回溯阶段,**它执行在递归节点的 Fiber 创建之后,主要负责完善创建好的 Fiber 节点和插入其真实 DOM 树**,首屏渲染中首先进入该函数的可能是最小的不存在子元素的 Fiber 节点,也可能是只存在一个文本子元素的夫节点,因为 React 对这样的元素做了一些优化,它的子元素并不会进入 beginWork 函数逻辑,而是直接交由 beginWork 进行 Fiber 填充。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
和 beginWork 中相同,completeWork 的主要逻辑也是一个巨大的 switch,根据 Fiber 节点的类型进入不同的处理逻辑 [[React 的深入探索 - completeWork]] |
|
|
|
|
|
|
|
|
|
|
|
## 第一次触发更新 |
|
|
|
## 第一次触发更新 |
|
|
|
|
|
|
|
|
|
|
|