大家好,欢迎来到今天的“React 内存大讲堂”。 我是你们的老朋友,一个在 React 源码的迷宫里摸爬滚打多年,头发比我的代码还少的资深工程师。 今天我们不谈业务逻辑,不谈 React Router 怎么配,我们要聊聊 React 给我们提供的两个最迷人的“记忆大师”:useMemo 和 useCallback。 很多同学听到这两个名字,第一反应是:“哦,它们是优化性能的。” 没错,但这只是冰山一角。如果把 React 的渲染过程比作一场大型的建造工程,那么这两个 Hook 就像是两个不同的工种。一个负责“存档”,一个负责“记忆”。 今天,我们要钻进 React 的肚子里——也就是 Fiber 节点 的内存布局中,去看看这俩家伙到底是怎么在那堆乱七八糟的指针和引用里生活的。 准备好了吗?让我们把 React 源码的面包撕开,看看里面的馅儿是不是全是 Bug。 第一部分:Fiber 节点——React 的微型大脑 在深入 useMemo 和 useCallback 之前,我们必须先聊聊它们寄宿的“尸体”——不,是“载体”——Fiber 节点。 你可能知道,React 16 以后放弃了 …
继续阅读“React useMemo 与 useCallback 的内存布局对比:探究计算结果与闭包函数在 Fiber 节点内存中的生命周期差异”