react reconciler debug
react运行堆栈
一次从试图创建到真实dom创建的过程。

ensureRootIsScheduled
任务总调度的地方。只要用时间切片还是不切片,一切看任务优先级。页面初始化的时候优先级是normal优先级,优先级是3。走时间切片渲染。
performConcurrentWorkOnRoot
这是并发任务的总入口,包括处理渲染工作和提交阶段工作(副作用函数)


提交阶段
- Before Mutation Phase: 在进行任何 DOM 变更之前,React 会处理一些生命周期方法(如 getSnapshotBeforeUpdate),并调用合适的钩子。
- Mutation Phase: 在这个阶段,React 会实际执行所有需要的 DOM 变更。前面渲染阶段只是创建好了dom节点,但是这里是真的挂在渲染。(commitMutationEffect函数是真正渲染的执行函数)
- Layout Phase: 在 DOM 变更完成后,React 会处理 componentDidMount 和 componentDidUpdate 生命周期方法,并调用 useLayoutEffect 钩子。
- Passive Effects Phase: 最后,React 会处理 useEffect 钩子中的副作用。