为什么要cloneChildFibers
来源:5-1 入口和优化
cyabonc
2020-04-25
bailoutOnAlreadyFinishedWork里面为什么要cloneChildFibers。不能直接用现有的fiber吗
写回答
2回答
-
qq_漫笔_0
2021-08-05
bailoutOnAlreadyFinishedWork的cloneChildFibers目的是创建workInProgress.child,创建workInProgress fiber 又怎么可以直接使用 current fiber呢,这不相互影响了吗?
可中断更新,被中断的上次更新保存在current fiber上,继续构建workInProgress fiber tree,完成渲染 current指向workInProgress,在进行下次更新时, 上次更新的 current 变成 workInProgress,就可以利用保存的数据继续上一次的更新。
012022-11-12 -
Jokcy
2020-11-25
因为bailout的时候需要让之前的更新回退,但也不希望这些更新就直接消失了,所以clone一份进行暂存
00
相似问题