From c8d22b42163c3bea76034b87f1a8b4bc63cfff35 Mon Sep 17 00:00:00 2001 From: YuJian Date: Wed, 20 Apr 2022 11:25:32 +0800 Subject: [PATCH] vault backup: 2022-04-20 11:25:32 --- React 的源码深入/React Reconciler - Fiber 创建.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/React 的源码深入/React Reconciler - Fiber 创建.md b/React 的源码深入/React Reconciler - Fiber 创建.md index 3d075ee..6e9b7eb 100644 --- a/React 的源码深入/React Reconciler - Fiber 创建.md +++ b/React 的源码深入/React Reconciler - Fiber 创建.md @@ -124,9 +124,12 @@ createInstance 会调用 createElement 方法创建一个 DOM 实例,并调用 - 最后没有找到以上属性,会进入最后的 else 逻辑:给 `updatePayload` 数组 `push` 进 props 属性名和 对应的属性值,进入下一轮循环 当所有的循环结束会判断 styleUpdates 是否合法(不为 null,且数组长度不为0),合法则进入将调用 validateShorthandPropertyCollisionInDev 函数,传递 styleUpdates 和 新 props style 属性,最后将 `style 字符串` 和 `styleUpdates` 推入 `updatePayload` -返回 updatePayload +返回 `updatePayload` -回到 `updateHostComponent` 函数,将 +回到 `updateHostComponent` 函数,将 `prepareUpdate` 也就是 `diffProperties` 返回的 `updatePayload` 赋值给 `workInProgress` 的 `updateQueue` 属性,如果它不为空则执行 `markUpdate` 函数 + +### markUpdate +为传入的 workInProgress 打上 Update 标记 ## 第二次触发更新和后续触发更新