1
0
Fork 0
Browse Source

vault backup: 2022-04-26 15:42:42

master
YuJian 3 years ago
parent
commit
153b7afb84
  1. 2
      React 的源码深入/React 的流程解析 - commit 阶段/React 的流程解析 - commit阶段.md

2
React 的源码深入/React 的流程解析 - commit 阶段/React 的流程解析 - commit阶段.md

@ -12,4 +12,4 @@ do {
} while (rootWithPendingPassiveEffects !== null); } while (rootWithPendingPassiveEffects !== null);
``` ```
这个循环的跳出条件是 rootWithPendingPassiveEffects 等于 null,不然就执行 flushPassiveEffects 函数,那么 rootWithPendingPassiveEffects 是什么?为什么要执行 flushPassiveEffects 函数,这个 rootWithPendingPassiveEffects 就是在 completeWork 阶段生成的带有 effectTag 的链表 effectList,而 flushPassiveEffects 函数内部会遍历这个链表, 这个循环的跳出条件是 rootWithPendingPassiveEffects 等于 null,不然就执行 flushPassiveEffects 函数,那么 rootWithPendingPassiveEffects 是什么?为什么要执行 flushPassiveEffects 函数,这个 rootWithPendingPassiveEffects 就是在 completeWork 阶段生成的带有 effectTag 的链表 effectList,而 flushPassiveEffects 函数内部会遍历这个链表,然后执行其各自内部的 useEffect 中的回调函数,在 commitRootImpl 开头执行是因为这些回调函数有可能触发新的渲染,所以需要遍历
Loading…
Cancel
Save