|
|
|
`tag` :
|
|
|
|
>表示 Fiber 的类型,根据 ReactElement 组件的 `type` 生成
|
|
|
|
|
|
|
|
`elementType` :
|
|
|
|
>大部分时候和 `type` 是相同的
|
|
|
|
>FunctionComponent 使用 `React.memo` 会有不同
|
|
|
|
|
|
|
|
`type` :
|
|
|
|
>FunctionComponent 而言是函数本身
|
|
|
|
>ClassComponent 而言是 Class
|
|
|
|
>Host Component 而言是 DOM 节点的 Tag Name
|
|
|
|
|
|
|
|
`key` :
|
|
|
|
>和 ReactElement 的 key 属性一致
|
|
|
|
|
|
|
|
`stateNode` :
|
|
|
|
>HostComponent 而言,是它的真实 DOM 节点
|
|
|
|
>ClassComponent 而言是 clsss 实例
|
|
|
|
|
|
|
|
`return` :
|
|
|
|
>指向父节点
|
|
|
|
|
|
|
|
`child` :
|
|
|
|
>指向第一个子节点
|
|
|
|
|
|
|
|
`sibling` :
|
|
|
|
>指向下一个兄弟节点
|
|
|
|
|
|
|
|
`index` :
|
|
|
|
>代表在多个同级 Fiber 节点中,它们插入的位置索引
|
|
|
|
>单节点默认为 0
|
|
|
|
|
|
|
|
`ref` :
|
|
|
|
>指向在 ReactElement 组件上设置的 ref
|
|
|
|
|
|
|
|
`pendingProps`:
|
|
|
|
>组件的属性,也就是 ReactElement 传入的 props
|
|
|
|
>用于和后边的 `memoizedProps` 属性比较判断组件属性是否发生变化
|
|
|
|
>在生成子 Fiber 节点之后被赋值到 `memoizedProps`
|
|
|
|
|
|
|
|
`memoizedProps`:
|
|
|
|
>上一次组件生成的属性,用于和上边的 `pendingProps` 进行比较
|
|
|
|
|
|
|
|
`alternate` :
|
|
|
|
>指向在内存中的另外一条 Fiber 树
|
|
|
|
|
|
|
|
`updateQueue` :
|
|
|
|
>存储 update更新对象 的队列,每次发起更新,都需要在该队列上创建一个 update对象
|
|
|
|
|
|
|
|
`memoizedState`:
|
|
|
|
>上一次生成子组件之后组件的状态
|
|
|
|
|
|
|
|
`dependencies`:
|
|
|
|
>该 Fiber 节点所依赖的 (contexts, events)
|
|
|
|
|
|
|
|
`mode` :
|
|
|
|
>和 React 的运行模式有关
|
|
|
|
|
|
|
|
`flags` :
|
|
|
|
>用于标记组件的副作用,reconciler 会将所有存在 flag 标记的 Fiber 节点添加进 effectList 链表中,交给 commit 阶段
|
|
|
|
|
|
|
|
`subtreeFlags` :
|
|
|
|
>替代 16.x 版本中的 firstEffect、lastEffect,默认未开启
|
|
|
|
|
|
|
|
`deletions` :
|
|
|
|
>存储将要被删除的子组件,默认未开启
|
|
|
|
|
|
|
|
`nextEffect` :
|
|
|
|
> 指向下一个有副作用的 Fiber 节点
|
|
|
|
|
|
|
|
`firstEffect` :
|
|
|
|
>指向副作用链表的第一个 Fiber 节点
|
|
|
|
|
|
|
|
`lastEffect` :
|
|
|
|
>指向副作用链表的最后一个 Fiber 节点
|
|
|
|
|
|
|
|
`lanes` :
|
|
|
|
>
|
|
|
|
|
|
|
|
`childLanes` :
|
|
|
|
|