1
0
Fork 0
Browse Source

vault backup: 2022-04-20 15:37:34

master
YuJian 3 years ago
parent
commit
543c4ac99f
  1. 4
      自顶向下学 React 源码/React 源码的碎片记录.md

4
自顶向下学 React 源码/React 源码的碎片记录.md

@ -32,4 +32,6 @@
- WorkInProgress Fiber 节点不存在 alternate 有可能表示,在上一次更新中不存在这个 Fiber 节点 - WorkInProgress Fiber 节点不存在 alternate 有可能表示,在上一次更新中不存在这个 Fiber 节点
- 对于一个 Host Components 来说,如果它有属性的增删改,那么它的Fiber 的 updateQueue 属性会赋值对应的一个数组,这个数组是由两轮属性的循环生成的,属性第 i 项为属性名,第 i + 1 项为属性值,在这个数组存在的情况下,也就是属性有改变的情况下会进入 markUpdate 函数的逻辑,这个函数会为当前的 Fiber 节点打上 Update 的标记(effectTag) - 对于一个 Host Components 来说,如果它有属性的增删改,那么它的Fiber 的 updateQueue 属性会赋值对应的一个数组,这个数组是由两轮属性的循环生成的,属性第 i 项为属性名,第 i + 1 项为属性值,在这个数组存在的情况下,也就是属性有改变的情况下会进入 markUpdate 函数的逻辑,这个函数会为当前的 Fiber 节点打上 Update 的标记(effectTag)
- 如果一个 Fiber 节点存在 effectTag,那么它会其他包含 effectTag 的 Fiber 节点链接形成一个链表,在 commit 阶段只需要遍历这个链表就能找出需要变动的 Fiber 节点 - 如果一个 Fiber 节点存在 effectTag,那么它会其他包含 effectTag 的 Fiber 节点链接形成一个链表,在 commit 阶段只需要遍历这个链表就能找出需要变动的 Fiber 节点
- 在 commit 节点遍历 effectList 的操作叫做 mutation - 在 commit 节点遍历 effectList 的操作叫做 mutation
- ClassComponent 的 getSnapshotBeforeUpdate 生命周期是在 before mutation 阶段被调用的
- useEffect 的回调函数会在 before mutation 阶段会以普通you'xian'j
Loading…
Cancel
Save