From 231380151a5839655d390470c86cea7f4c8e3db9 Mon Sep 17 00:00:00 2001 From: YuJian920 Date: Sun, 8 May 2022 17:23:09 +0800 Subject: [PATCH] vault backup: 2022-05-08 17:23:09 --- .../React 的流程解析 - Fiber 递归.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/React 的源码深入/React 的流程解析 - Fiber 递归/React 的流程解析 - Fiber 递归.md b/React 的源码深入/React 的流程解析 - Fiber 递归/React 的流程解析 - Fiber 递归.md index 6597d56..13cba4d 100644 --- a/React 的源码深入/React 的流程解析 - Fiber 递归/React 的流程解析 - Fiber 递归.md +++ b/React 的源码深入/React 的流程解析 - Fiber 递归/React 的流程解析 - Fiber 递归.md @@ -54,7 +54,7 @@ completeWork 负责深度优先遍历中的回溯阶段,**它执行在递归 这里你可以会有一个疑惑,在 Fiber 递归阶段也就是 reconciler 阶段,会深度优先遍历找出所有的存在变化的 Fiber 节点,并将其打上对应的 effectTag,**那么进入 commit 阶段后,也需要再次进行一次深度优先遍历找出这些存在 effectTag 的 Fiber 节点吗?** -其实是不需要的,因为这样的效率太低了,在深度优先遍历的回溯阶段也就是 completeWork 的执行逻辑中,会将所有存在 effectTag 的 Fiber 节点通过链表的xian'sh +其实是不需要的,因为这样的效率太低了,在深度优先遍历的回溯阶段也就是 completeWork 的执行逻辑中,会将所有存在 effectTag 的 Fiber 节点通过单项链表的形式连接起来,这样在 commit 阶段的时候只需要遍历这一条链表就能快速的找到发生了变化的 Fiber 节点:[[effectList 的生成]] [[React 的流程解析 - commit阶段]]