From 5dfb071868a949afd9ddccce118df42c7a2b7987 Mon Sep 17 00:00:00 2001 From: YuJian Date: Wed, 13 Apr 2022 11:21:28 +0800 Subject: [PATCH] vault backup: 2022-04-13 11:21:28 --- 自顶向下学 React 源码/React 源码的碎片记录.md | 2 +- 自顶向下学 React 源码/beginWork 和 completeWork.md | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/自顶向下学 React 源码/React 源码的碎片记录.md b/自顶向下学 React 源码/React 源码的碎片记录.md index fc2f57f..abd943e 100644 --- a/自顶向下学 React 源码/React 源码的碎片记录.md +++ b/自顶向下学 React 源码/React 源码的碎片记录.md @@ -20,4 +20,4 @@ - updateHostComponent 方法中的 reconcileChildren 方法会为当前 Fiber 节点创建它的子 Fiber 节点,也就是 Fiber 中的 child 属性 - reconcileChildren 方法接受 current 参数,通过判断这个参数是否为 null,分别执行 mountChildFibers 或 reconcileChildFibers 方法 - mountChildFibers 和 reconcileChildFibers 都是由 ChildReconciler 方法创建的,只是传入的布尔值会不同,而这个参数表示是否追踪副作用,mountChildFibers 为 false,reconcileChildFibers则相反 -- 以 reconcileChildFibers 为例,会对 Children 的类型做判断,对判断结果分别做相应操作,以 \ No newline at end of file +- 以 reconcileChildFibers 为例,会对 Children 的类型做判断,对判断结果分别做相应操作 \ No newline at end of file diff --git a/自顶向下学 React 源码/beginWork 和 completeWork.md b/自顶向下学 React 源码/beginWork 和 completeWork.md index c994aab..5636cec 100644 --- a/自顶向下学 React 源码/beginWork 和 completeWork.md +++ b/自顶向下学 React 源码/beginWork 和 completeWork.md @@ -3,3 +3,5 @@ ```javascript function beginWork(current, workInProgress, renderLanes) {} ``` +### 小结 +- 当一个 Fiber 节点进入 beginWork 时,它的目的是创建当前 Fiber 节点的一个子 Fiber 节点,会根据 Element 的类型进入不同的 update 逻辑,在 update 逻辑中,会先判断是否够存在对应的 current 节点(reconcileChildren),来标记 \ No newline at end of file