From e261a87aac1d2669c474f0377c21a6704661d7d4 Mon Sep 17 00:00:00 2001 From: YuJian Date: Tue, 28 Jun 2022 16:54:23 +0800 Subject: [PATCH] vault backup: 2022-06-28 16:54:23 --- .../React 的深入探索 - beginWork.md | 39 ++----------------- 1 file changed, 3 insertions(+), 36 deletions(-) diff --git a/React 的深入探索/React 的流程解析 - Fiber 递归/React 的深入探索 - beginWork.md b/React 的深入探索/React 的流程解析 - Fiber 递归/React 的深入探索 - beginWork.md index b88f120..bed8016 100644 --- a/React 的深入探索/React 的流程解析 - Fiber 递归/React 的深入探索 - beginWork.md +++ b/React 的深入探索/React 的流程解析 - Fiber 递归/React 的深入探索 - beginWork.md @@ -161,46 +161,13 @@ switch 中的 case 逻辑太多了,全部都写出来会让笔记显得特别 ### updateHostRoot -首先会执行 pushHostRootContext 函数,这个函数与 context 有关 - -**pushHostRootContext** - -```javascript -function pushHostRootContext(workInProgress) { - var root = workInProgress.stateNode; - if (root.pendingContext) { - pushTopLevelContextObject( - workInProgress, - root.pendingContext, - root.pendingContext !== root.context - ); - } else if (root.context) { - // Should always be set - pushTopLevelContextObject(workInProgress, root.context, false); - } - - pushHostContainer(workInProgress, root.containerInfo); -} -``` - -**pushTopLevelContextObject** - -```javascript -function pushTopLevelContextObject(fiber, context, didChange) { - { - if (contextStackCursor.current !== emptyContextObject) { - throw new Error("..."); - } - - push(contextStackCursor, context, fiber); - push(didPerformWorkStackCursor, didChange, fiber); - } -} -``` +首先会执行 pushHostRootContext 函数,这个函数与 context 有关,暂且不谈 ```javascript function updateHostRoot(current, workInProgress, renderLanes) { + // context 相关 pushHostRootContext(workInProgress); + // 取出 updateQueue var updateQueue = workInProgress.updateQueue; if (current === null || updateQueue === null) { throw new Error("...");