React Fiber架构里render和commit阶段到底怎么分工的?

Air-兴敏 阅读 15

最近在看React源码,对Fiber架构有点懵。我知道更新分render和commit两个阶段,但具体哪些工作是在render阶段做、哪些留到commit阶段执行?比如useEffectuseLayoutEffect的回调是在哪个阶段调度的?

我试过在组件里加一些console.log,发现render阶段会多次执行(比如被高优先级任务打断后重来),但commit好像只走一次。那像DOM操作这种副作用,是不是必须等到commit阶段才安全?有没有什么原则可以判断某段逻辑该放在哪个阶段处理?

我来解答 赞 7 收藏
二维码
手机扫码查看
暂无解答

暂无解答