From 35bb3eed10a3d477dff7641e87c34212eff5272c Mon Sep 17 00:00:00 2001 From: YuJian Date: Tue, 19 Apr 2022 11:21:32 +0800 Subject: [PATCH] vault backup: 2022-04-19 11:21:32 --- 自顶向下学 React 源码/effectList 的生成.md | 3 +++ 自顶向下学 React 源码/奇怪的疑惑.md | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 自顶向下学 React 源码/effectList 的生成.md diff --git a/自顶向下学 React 源码/effectList 的生成.md b/自顶向下学 React 源码/effectList 的生成.md new file mode 100644 index 0000000..0e9ceed --- /dev/null +++ b/自顶向下学 React 源码/effectList 的生成.md @@ -0,0 +1,3 @@ +# effectList 的生成 + +在 React Fiber 的 completeWork 阶段,React 会将所有被标记上 effectTag 的 Fiber 节点通过一个单向链表给连接起来,这样在 commit 阶段的时候,只需要遍历这一条链表就能快速更新页面 \ No newline at end of file diff --git a/自顶向下学 React 源码/奇怪的疑惑.md b/自顶向下学 React 源码/奇怪的疑惑.md index 2566ecf..934d749 100644 --- a/自顶向下学 React 源码/奇怪的疑惑.md +++ b/自顶向下学 React 源码/奇怪的疑惑.md @@ -10,4 +10,5 @@ - [ ] 为什么 React 要尽可能的复用 Fiber, 是因为创建新的 Fiber 非常消耗性能吗? - [ ] 是不是在 React 运行时中,自始至终都存在两个 Fiber Tree,只是他们的名字会来回交换,一会我是 current 一会他是 current ? - [ ] reconcileChildren 的具体功能? -- [ ] reconciler 阶段会深度优先遍历找出所有需要更新或者发生更改的 Fiber 节点,然后遍历出完整的Fiber,然后作为参数传递给 commitRoot 函数进入 commit 阶段,那么在 commit 阶段也要对 Fiber 树进行深度优先遍历吗? \ No newline at end of file +- [x] reconciler 阶段会深度优先遍历找出所有需要更新或者发生更改的 Fiber 节点,然后遍历出完整的Fiber,然后作为参数传递给 commitRoot 函数进入 commit 阶段,那么在 commit 阶段也要对 Fiber 树进行深度优先遍历吗? + - [[effectList 的生成]] \ No newline at end of file