From 466d6f08fe207c51c576ce9c4a8cedeb2a421d1a Mon Sep 17 00:00:00 2001 From: YuJian920 Date: Sun, 8 May 2022 17:18:09 +0800 Subject: [PATCH] vault backup: 2022-05-08 17:18:09 --- .../React 的流程解析 - Fiber 递归.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/React 的源码深入/React 的流程解析 - Fiber 递归/React 的流程解析 - Fiber 递归.md b/React 的源码深入/React 的流程解析 - Fiber 递归/React 的流程解析 - Fiber 递归.md index a5d410b..6597d56 100644 --- a/React 的源码深入/React 的流程解析 - Fiber 递归/React 的流程解析 - Fiber 递归.md +++ b/React 的源码深入/React 的流程解析 - Fiber 递归/React 的流程解析 - Fiber 递归.md @@ -52,6 +52,10 @@ completeWork 负责深度优先遍历中的回溯阶段,**它执行在递归 如果最终回溯到了 Fiber 的起始节点,那么整个首屏渲染的 Fiber 递归渲染逻辑就完成了,最后会交由 commitRoot 函数进入 commit 阶段将其渲染到页面上 +这里你可以会有一个疑惑,在 Fiber 递归阶段也就是 reconciler 阶段,会深度优先遍历找出所有的存在变化的 Fiber 节点,并将其打上对应的 effectTag,**那么进入 commit 阶段后,也需要再次进行一次深度优先遍历找出这些存在 effectTag 的 Fiber 节点吗?** + +其实是不需要的,因为这样的效率太低了,在深度优先遍历的回溯阶段也就是 completeWork 的执行逻辑中,会将所有存在 effectTag 的 Fiber 节点通过链表的xian'sh + [[React 的流程解析 - commit阶段]] ## 第一次触发更新