|
|
|
@ -56,7 +56,7 @@ createInstance 会调用 createElement 方法创建一个 DOM 实例,并调用
@@ -56,7 +56,7 @@ createInstance 会调用 createElement 方法创建一个 DOM 实例,并调用
|
|
|
|
|
### 第一次触发更新 |
|
|
|
|
|
|
|
|
|
### createWorkInProgress |
|
|
|
|
还是交由 createWorkInProgress 这个函数,这个函数会从 current 中取出 alternate 属性,用于判断是否已经存在 WorkInProgress 树,在本次更新,当前的 current 就是上一次渲染的 WorkInProgress,但是首屏渲染完成之后,只渲染完成了一棵树,所以这次 workInProgress 的判断还是 |
|
|
|
|
还是交由 createWorkInProgress 这个函数,这个函数会从 current 中取出 alternate 属性,用于判断是否已经存在 WorkInProgress 树,在本次更新,当前的 current 就是上一次渲染的 WorkInProgress,首屏渲染完成之后,实际上只渲染完成了一棵树,但是这次的 WorkInProgress 并不会走等于 null 的逻辑,因为在首屏渲染的时候,那个还是 current 的 WorkInProgress 实际上已经有一个 Fiber 节点了,那就是 FiberNode ,所以在这次渲染,它也还是有那一个 FiberNode 的,所以会走不为空的逻辑:复用现有的 Fiber 节点 |
|
|
|
|
|
|
|
|
|
### 第二次触发更新 |
|
|
|
|
|
|
|
|
|