在rootFiber.firstEffect上保存了一条需要执行副作用的Fiber节点的单向链表effectList,这些Fiber节点的updateQueue中保存了变化的props。
    这些副作用对应的DOM操作在commit阶段执行。
    除此之外,一些生命周期钩子(比如componentDidXXX)、hook(比如useEffect)需要在commit阶段执行。
    commit阶段的主要工作(即Renderer的工作流程)分为三部分:

    • before mutation阶段(执行DOM操作前)
    • mutation阶段(执行DOM操作)
    • layout阶段(执行DOM操作后)