认识
一、认识
beginWork
向下深度优先调和: 首先从rootFiber
开始向下深度优先遍历。为遍历到的每个Fiber
节点调用beginWork
方法。该方法会根据传入的Fiber
节点创建子Fiber
节点,并将这两个Fiber
节点连接起来。向下调和 期间会执行函数组件,实例类组件,diff
调和子节点,打不同effectTag
。当遍历到叶子节点(即没有子组件的组件)时就会进入向上归并阶段。
beginWork
的工作是创建或者复用子fiber
节点
-
mount
时: 除fiberRootNode
以外,current === null
。会根据fiber.tag
不同,创建不同类型的子Fiber
节点 -
update 时
: 如果current
存在,在满足一定条件时可以复用current
节点,这样就能克隆current.child
作为workInProgress.child
,而不需要新建workInProgress.child
二、流程
Preview