You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
1.0 KiB
23 lines
1.0 KiB
3 years ago
|
>commitRootImpl 是 React commit 阶段非常重要的一个函数,这个阶段完成了对 effectList 的遍历和页面渲染,这个函数处理可以分为三个阶段,分别是:before、mutation 和 layout
|
||
3 years ago
|
|
||
|
进入 commitRootImpl 函数,首先会进入 do..while 循环内执行 flushPassiveEffects,直到 rootWithPendingPassiveEffects 不等于 null 才会跳出循环
|
||
|
|
||
|
### flushPassiveEffects
|
||
3 years ago
|
这个函数在 useEffect 和 useLayoutEffect 阶段会用到; TODO
|
||
|
|
||
|
### flushRenderPhaseStrictModeWarningsInDEV
|
||
|
从名字可以看出是开发环境相关的函数,似乎是针对 Strict 模式;TODO
|
||
|
|
||
|
### markCommitStarted
|
||
|
|
||
|
### markCommitStopped
|
||
3 years ago
|
|
||
3 years ago
|
重置 root 也就是全局唯一根节点 FiberRootNode 的 finishedWork 和 finishedLanes
|
||
|
重置 root 也就是全局唯一根节点 FiberRootNode 的 callbackNode 和 callbackPriority
|
||
|
|
||
|
### mergeLanes
|
||
|
|
||
|
### markRootFinished
|
||
|
|
||
|
如果 FiberRootNode 和 workInProgressRoot 相等,重置 workInProgressRoot 、workInProgress 和 workInProgressRootRenderLanes,~~这里没有看懂~~
|