From 0bd41a0b394e80788b69ab72967f3610bea8eb40 Mon Sep 17 00:00:00 2001 From: YuJian Date: Mon, 9 May 2022 16:03:22 +0800 Subject: [PATCH] vault backup: 2022-05-09 16:03:22 --- .../React 的深入探索 - createWorkInProgress.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/React 的源码深入/React 的流程解析 - Fiber 递归/React 的深入探索 - createWorkInProgress.md b/React 的源码深入/React 的流程解析 - Fiber 递归/React 的深入探索 - createWorkInProgress.md index 8a02e8f..281438a 100644 --- a/React 的源码深入/React 的流程解析 - Fiber 递归/React 的深入探索 - createWorkInProgress.md +++ b/React 的源码深入/React 的流程解析 - Fiber 递归/React 的深入探索 - createWorkInProgress.md @@ -37,7 +37,18 @@ workInProgress.alternate = current; current.alternate = workInProgress; ``` -### clone +可以看到 Fiber 的创建逻辑主要是调用了 createFiber 函数,而这个函数的逻辑也很简单: + +### createFiber + +```javascript +var createFiber = function (tag, pendingProps, key, mode) { + // 实例化一个初始的 Fiber 对象并返回 + return new FiberNode(tag, pendingProps, key, mode); +}; +``` + +主要任务就是实例化一个初始的 Fiber 对象并返回,然后在 createWorkInProgress 接下来的逻辑中会对一些存在 current jie属性进行复用 ## 复用已有 Fiber 节点