current 和 workInProgress 分别在什么时候用
来源:8-6 hydrate-是否需要hydrate的判断
qq_月色里肆无忌惮的浅忆_0
2020-01-02
视频里面将在 beginWork 开始的时候所以的操作都是在 workInProgress 上执行,但是代码中有几处都是直接调用 current,比如 commitAllLifeCycles 中
if (effectTag & (Update | Callback)) {
const current = nextEffect.alternate;
commitLifeCycles(
finishedRoot,
current,
nextEffect,
committedExpirationTime,
);
}
completeUnitOfWork中
const current = workInProgress.alternate;
const returnFiber = workInProgress.return;
const siblingFiber = workInProgress.sibling;
if ((workInProgress.effectTag & Incomplete) === NoEffect) {
// This fiber completed.
// pop 各种 context 相关内容
// 对 HostComponent 进行初始化(创建 instance,处理 props)
// 初始化自定义监听事件
nextUnitOfWork = completeWork(
current,
workInProgress,
nextRenderExpirationTime,
);
}
请老师解答一下
写回答
1回答
-
current是在正在需要更新dom的时候才会用到,其他时候基本上都是操作workInProgress
012020-01-06
相似问题