|
|
@ -9,6 +9,7 @@ Fiber 递归开始首先会交由 createWorkInProgress 函数生成 WorkInProgre |
|
|
|
2. 当前 Fiber 节点属性新增的节点 |
|
|
|
2. 当前 Fiber 节点属性新增的节点 |
|
|
|
|
|
|
|
|
|
|
|
如果判断 alternate 不存在,会进入到 createFiber 函数:即执行创建新 Fiber 节点的逻辑。 |
|
|
|
如果判断 alternate 不存在,会进入到 createFiber 函数:即执行创建新 Fiber 节点的逻辑。 |
|
|
|
|
|
|
|
否则就会进行 Fiber 复用。 |
|
|
|
|
|
|
|
|
|
|
|
```javascript |
|
|
|
```javascript |
|
|
|
function createWorkInProgress(current, pendingProps) { |
|
|
|
function createWorkInProgress(current, pendingProps) { |
|
|
@ -38,7 +39,7 @@ function createWorkInProgress(current, pendingProps) { |
|
|
|
|
|
|
|
|
|
|
|
这个函数具体的深入解析可以看 [[React 的深入探索 - createWorkInProgress]]。 |
|
|
|
这个函数具体的深入解析可以看 [[React 的深入探索 - createWorkInProgress]]。 |
|
|
|
|
|
|
|
|
|
|
|
createWorkInProgress 执行完毕之后,我们就有了一个 WorkInProgress Fiber 节点,接下来就会交给 beginWork 开始正式的 Fiber 递归,在之后的 beginWork 流程中,如果发现存在新增的 Fiber 节点,也会进入到 createWorkInProgress 这个函数逻辑中。 |
|
|
|
createWorkInProgress 执行完毕之后,我们就有了一个 WorkInProgress Fiber 节点,接下来就会交给 beginWork 和 completeWork 开始正式的 Fiber 递归,在之后的 beginWork 流程中,如果发现存在新增的 Fiber 节点,也会进入到 createWorkInProgress 这个函数逻辑中。 |
|
|
|
|
|
|
|
|
|
|
|
在 React 中 Fiber 的创建使用递归实现的深度优先遍历算法,即尽可能深的探索树的分支,探索完毕后再回溯,在这一过程中负责探索阶段的就是 beginWork 函数。 |
|
|
|
在 React 中 Fiber 的创建使用递归实现的深度优先遍历算法,即尽可能深的探索树的分支,探索完毕后再回溯,在这一过程中负责探索阶段的就是 beginWork 函数。 |
|
|
|
|
|
|
|
|
|
|
|