跳到主要内容

认识

一、认识


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