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.
1.0 KiB
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,这里没有看懂