ReactDOM.render 调用栈大致可以拆分成如下三个阶段:
初始化阶段、render阶段、commit阶段
在初始化阶段,整个初始化的工作过程都是在为render 阶段做准备。在render阶段由 ReactDOM.render 发起的首屏渲染的场景下,它触发的就是 performSyncWorkOnRoot。它开启的就是 render 阶段;finishSyncRoot标志着render方法的结束,在这个过程中,穿插了大量了beginWork、completeWork调用(这两个方法串联起来就是一个模拟递归的过程),这个两个方法就是render的工作内容。commit阶段完成了对 ReactDOM.render 调用栈的分析。表面上剖析的是首次渲染的渲染链路,实际上将包括同步模式下的挂载、更新链路都串联了一遍。