|
|
|
@ -41,7 +41,7 @@ function createWorkInProgress(current, pendingProps) {
@@ -41,7 +41,7 @@ function createWorkInProgress(current, pendingProps) {
|
|
|
|
|
|
|
|
|
|
createWorkInProgress 执行完毕之后,我们就有了一个 WorkInProgress Fiber 节点,接下来就会交给 beginWork 和 completeWork 开始正式的 Fiber 递归,在之后的 beginWork 流程中,如果发现存在新增的 Fiber 节点,也会进入到 createWorkInProgress 这个函数逻辑中。 |
|
|
|
|
|
|
|
|
|
在 React 中 Fiber 的创建使用递归实现的深度优先遍历算法,即尽可能深的探索树的分支,探索完毕后再回溯,在这一过程中负责探索阶段的就是 beginWork 函数。 |
|
|
|
|
在 React 中 Fiber 的创建使用递归实现的**深度优先遍历**算法,即尽可能深的探索树的分支,探索完毕后再回溯,在这一过程中负责探索阶段的就是 beginWork 函数。 |
|
|
|
|
|
|
|
|
|
**beginWork 执行在递归节点的 Fiber 创建之前,主要是为传入的 Fiber 节点创建第一个子 Fiber 节点**,其内部可以看作一个大的 switch 语句,根据传入的 Fiber 节点的子元素类型不同执行不同的 Fiber 创建逻辑,不管父元素拥有多少个子元素,它最终都会创建并返回第一个子元素的 Fiber 节点,直到并不存在子元素为止,[[React 的深入探索 - beginWork]]。 |
|
|
|
|
|
|
|
|
|