各位同学,大家好! 今天我们要聊的话题,稍微有点“反直觉”,甚至可以说是有点“不务正业”。在编程界,我们通常被教导要勤奋,要努力工作,要写出“高性能”的代码,要优化每一个循环,要减少每一毫秒的计算。 但是,在 React 的世界里,存在一种最高级的优化策略,它的核心思想竟然是——“懒惰”。是的,你没听错,就是“偷懒”。 今天,我们将深入 React 源码的腹地,去探究一个名为 bailoutOnAlreadyFinishedWork 的函数。我们要搞清楚,React 优化器是如何利用这个机制,让那些“静态组件”在父组件更新时,像一尊尊入定的老僧一样,纹丝不动,从而规避冗余的子树遍历。 准备好了吗?让我们把键盘敲得震天响,开始这场关于“偷懒”的技术讲座。 第一部分:React 的“大扫除”与 Fiber 的“苦力” 首先,我们得理解 React 是怎么工作的。想象一下,你的浏览器窗口里有一个 React 应用。当你点击一个按钮,或者输入一个文字,React 就要开始干活了。 在 React 16 引入 Fiber 之前,React 的更新过程就像是一个人拿着一把巨大的扫帚,从根节点开始, …
继续阅读“React 静态组件的跳过策略:探究优化器如何利用 bailoutOnAlreadyFinishedWork 规避冗余子树遍历”