diff --git a/React 的源码深入/Fiber 数据结构.md b/React 的源码深入/Fiber 数据结构.md index 522a829..a225411 100644 --- a/React 的源码深入/Fiber 数据结构.md +++ b/React 的源码深入/Fiber 数据结构.md @@ -1,48 +1,60 @@ `tag` : -> 表示 Fiber 的类型,根据 ReactElement 组件的 `type` 生成 +>表示 Fiber 的类型,根据 ReactElement 组件的 `type` 生成 `elementType` : -> 大部分时候和 `type` 是相同的 -> FunctionComponent 使用 `React.memo` 会有不同 +>大部分时候和 `type` 是相同的 +>FunctionComponent 使用 `React.memo` 会有不同 `type` : -> FunctionComponent 而言是函数本身 -> ClassComponent 而言是 Class -> Host Component 而言是 DOM 节点的 Tag Name +>FunctionComponent 而言是函数本身 +>ClassComponent 而言是 Class +>Host Component 而言是 DOM 节点的 Tag Name `key` : -> 和 ReactElement 的 key 属性一致 +>和 ReactElement 的 key 属性一致 `stateNode` : -> HostComponent 而言,是它的真实 DOM 节点 -> ClassComponent 而言是 clsss 实例 +>HostComponent 而言,是它的真实 DOM 节点 +>ClassComponent 而言是 clsss 实例 `return` : -> 指向父节点 +>指向父节点 `child` : -> 指向第一个子节点 +>指向第一个子节点 `sibling` : -> 指向下一个兄弟节点 +>指向下一个兄弟节点 `index` : -> 代表在多个同级 Fiber 节点中,它们插入的位置索引 -> 单节点默认为 0 +>代表在多个同级 Fiber 节点中,它们插入的位置索引 +>单节点默认为 0 `ref` : -> 指向在 ReactElement 组件上设置的 ref +>指向在 ReactElement 组件上设置的 ref `pendingProps`: -> 组件的属性,也就是 ReactElement 传入的 props -> 用于和后边的 `memoizedProps` 属性比较判断组件属性是否发生变化 -> 在生成子 Fiber 节点之后被赋值到 `memoizedProps` +>组件的属性,也就是 ReactElement 传入的 props +>用于和后边的 `memoizedProps` 属性比较判断组件属性是否发生变化 +>在生成子 Fiber 节点之后被赋值到 `memoizedProps` `memoizedProps`: -> 上一次组件生成的属性,用于和上边的 `pendingProps` 进行比较 +>上一次组件生成的属性,用于和上边的 `pendingProps` 进行比较 `alternate` : -> 指向在内存中的另外一条 Fiber 树 +>指向在内存中的另外一条 Fiber 树 `updateQueue` : -> 更新队列 \ No newline at end of file +>存储 update更新对象 的队列,每次发起更新,都需要在该队列上创建一个 update对象 + +`memoizedState`: +>上一次生成子组件之后组件的状态 + +`dependencies`: +>该 Fiber 节点所依赖的 (contexts, events) + +`mode` : +>和 React 的运行模式有关 + +`flags` : +>用于标记组件的副作用 \ No newline at end of file