|
|
|
@ -60,6 +60,8 @@ if (root === workInProgressRoot) {
@@ -60,6 +60,8 @@ if (root === workInProgressRoot) {
|
|
|
|
|
|
|
|
|
|
然后会开始处理 effectList,因为之前 completeWork 生成 effectList 的时候并没有处理 FiberNode ,所以这里需要判断 FiberNode 是否存在 effectTag,并将其加入到 effectList 的末尾 |
|
|
|
|
|
|
|
|
|
而这个 firstEffect,就会作为接下来三个阶段中被遍历的 effectList |
|
|
|
|
|
|
|
|
|
```javascript |
|
|
|
|
var firstEffect; |
|
|
|
|
if (finishedWork.effectTag > PerformedWork) { |
|
|
|
@ -157,4 +159,10 @@ do {
@@ -157,4 +159,10 @@ do {
|
|
|
|
|
} while (nextEffect !== null); |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
关于 commitLayoutEffects: [[React 的深入探索 - commitLayoutEffects]] |
|
|
|
|
关于 commitLayoutEffects: [[React 的深入探索 - commitLayoutEffects]] |
|
|
|
|
|
|
|
|
|
结束三个循环之后 commit 阶段并没有结束,还会进入接下来逻辑 |
|
|
|
|
|
|
|
|
|
```javascript |
|
|
|
|
|
|
|
|
|
``` |