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.

7 lines
725 B

# effectList 的生成
在 React Fiber 的 completeWork 阶段,React 会将所有被标记上 effectTag 的 Fiber 节点通过一个单向链表给连接起来,这样在 commit 阶段的时候,只需要遍历这一条链表就能快速更新页面
如果一个 Fiber 节点在 completeWork 阶段抛出异常,那么它的父 Fiber 节点会被打上 Incomplete 标记,表示当前的父 Fiber 下的子 Fiber 树没有完成构建
这部分的代码相当的抽象,而且在React 后续的更新中,这一功能的实现逻辑被重构了,所以这一篇会尽可能的讲解被重写之前 React 生成 effectList 的逻辑,仅当作学习记录用,最新的处理逻辑以 React 最新的代码为准