各位同学,大家下午好! 欢迎来到今天的“React 源码深度解析”现场。我是你们的讲师,一个在 React 代码里摸爬滚打多年的“老司机”。今天我们不聊 Hello World,也不聊 Hooks 的花式写法,我们要聊聊 React 协调器里一个稍微有点“晦涩”,但又是整个性能优化的基石——脏检查机制。 特别是那个大名鼎鼎的函数:checkScheduledUpdateOnFiber。 听到“脏检查”这四个字,大家脑海里可能浮现出 jQuery 时代的 $(this).addClass(‘dirty’),或者是 Angular 那种每帧都跑一遍全量 diff 的疯狂。但 React 不是那样的。React 是优雅的,它是基于优先级的调度大师。然而,在这个优雅的大师袍子下面,藏着一条极其精密的“自下而上”的标记路径。今天,我们就来扒开这条路径,看看 React 到底是怎么知道“谁脏了”的。 一、 场景重现:一场并不存在的家庭作业 为了讲清楚 checkScheduledUpdateOnFiber,我们先构建一个场景。 假设我们有一个典型的 React 组件树,长得像这样: functio …
继续阅读“React 协调器中的脏检查机制:探究 checkScheduledUpdateOnFiber 如何自下而上标记更新路径”