From 4ac4e7c5c2af2552b96a07b29057857c0c08743b Mon Sep 17 00:00:00 2001 From: YuJian Date: Tue, 26 Apr 2022 17:22:43 +0800 Subject: [PATCH] vault backup: 2022-04-26 17:22:42 --- .../React 的流程解析 - commit阶段.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/React 的源码深入/React 的流程解析 - commit 阶段/React 的流程解析 - commit阶段.md b/React 的源码深入/React 的流程解析 - commit 阶段/React 的流程解析 - commit阶段.md index c726ea2..9c7ab5a 100644 --- a/React 的源码深入/React 的流程解析 - commit 阶段/React 的流程解析 - commit阶段.md +++ b/React 的源码深入/React 的流程解析 - commit 阶段/React 的流程解析 - commit阶段.md @@ -208,6 +208,14 @@ if (remainingLanes === SyncLane) { } ``` +这段代码是为了将当前的 root 重新调度一次,是因为在 commit 阶段有可能会产生新的更新 + ```javascript ensureRootIsScheduled(root, now()); +``` + +React 内会存在一些同步的更新(useLayoutEffect 中的触发更新),React 会将此放在 flushSyncCallbackQueue 函数中在 commit 阶段同步的执行 + +```javascript +flushSyncCallbackQueue(); ``` \ No newline at end of file