1
0
Fork 0
Obsidian 管理的个人笔记仓库
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

>commitRootImpl 是 React commit 阶段非常重要的一个函数,这个阶段完成了对 effectList 的遍历和页面渲染,这个函数处理可以分为三个阶段,分别是:before、mutation 和 layout
进入 commitRootImpl 函数,首先会进入 do..while 循环内执行 flushPassiveEffects,直到 rootWithPendingPassiveEffects 不等于 null 才会跳出循环
### flushPassiveEffects
这个函数在 useEffect 和 useLayoutEffect 阶段会用到; TODO
### flushRenderPhaseStrictModeWarningsInDEV
从名字可以看出是开发环境相关的函数,似乎是针对 Strict 模式;TODO
### markCommitStarted
### markCommitStopped
重置 root 也就是全局唯一根节点 FiberRootNode 的 finishedWork 和 finishedLanes
重置 root 也就是全局唯一根节点 FiberRootNode 的 callbackNode 和 callbackPriority
### mergeLanes
### markRootFinished
如果 FiberRootNode 和 workInProgressRoot 相等,重置 workInProgressRoot 、workInProgress 和 workInProgressRootRenderLanes,~~这里没有看懂~~