简介

React - completeUnitOfWork 源码阅读学习笔记。

completeUnitOfWork 流程

1、completeUnitOfWork 主要作用是所有节点均会执行 completeWork 逻辑;
执行时机是 completeWork 执行结果为 null,即 nextUnitOfWork 为 null。

2、completeUnitOfWork 内部遍历的顺序是:
从 workInProgress 的最底部的第一个节点开始;每个工作节点都会执行 completeWork 方法;
下一个工作节点是 siblings;
如果没有 siblings,下一个工作节点是 parent。

3、由此可以看到:
completeUnitOfWork 是从底部向上一层一层处理,即为自下而上的广度优先。

completeWork 流程

整体流程

completeWork

遍历逻辑

1、completeWork 的作用主要是根据 workInProgress 的 type 创建 dom 实例;
然后将所有子节点添加到 workInProgress 的 instance 上。

2、completeWork 内部遍历的顺序是:
先从 workInProgress 深度递归的最底部的 child;
然后最底部的 child 的 sibling;
如果没有 sibling 向上到 parent,重复上面的操作;
直到 workInProgress。

3、由此可以看到:
completeWork 是从当前节点先深度优先递归到最底层,然后广度优先遍历完当前层,再回到上一层。

源码阅读

地址: https://github.com/yunaichun/react-study

参考资料

powered by Gitbook该文件修订时间: 2023-05-16 18:08:03

results matching ""

    No results matching ""