|
|
|
@ -1,6 +1,6 @@
@@ -1,6 +1,6 @@
|
|
|
|
|
>这个函数的任务是创建 WorkInProgress 树的 Fiber 节点,根据传入参数的判断是复用已有的 Fiber 节点或是创建新的 Fiber 节点 |
|
|
|
|
|
|
|
|
|
createWorkInProgress 在 Fiber 递归开始前和进入 Bailout 逻辑的时候都会被触发,React 为了提高性能会尽可能的复用 Fiber,如果当前的 current 节点已经存在一个链接的 WorkInProgress 节点,那么新创建的 WorkInProgress 就会基于这个已有的节点来创建 |
|
|
|
|
createWorkInProgress 在 Fiber 递归开始前和进入 Bailout 逻辑的时候都会被触发,React 为了提高性能会尽可能的复用 Fiber,如果当前的 current 节点已经存在一个链接的 WorkInProgress 节点,那么新创建的 WorkInProgress 就会基于这个已有的节点来创建。 |
|
|
|
|
|
|
|
|
|
逻辑开始会先判断传入的 Fiber 节点是否存在 alternate 属性。 |
|
|
|
|
|
|
|
|
@ -15,7 +15,7 @@ function createWorkInProgress(current, pendingProps) {
@@ -15,7 +15,7 @@ function createWorkInProgress(current, pendingProps) {
|
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
alternate 属性链接的是其对应的 WorkInProgress 节点,如果该属性不存在会进入创建新 Fiber 的逻辑: |
|
|
|
|
根据属性是否存在会进入不同的新 Fiber 创建逻辑: |
|
|
|
|
|
|
|
|
|
## 创建新 Fiber 节点 |
|
|
|
|
|
|
|
|
|