各位,各位,把手里的咖啡放下,把刚发的工资收好。今天我们不聊业务逻辑,不聊怎么用 useEffect 防抖,也不聊怎么把 class 组件改成 function 组件。今天,我们要钻进 React 的肚子里,去看看它是怎么“变魔术”的。 你们有没有想过,为什么你在一个页面里疯狂点击按钮,页面还能丝般顺滑,没有卡顿?为什么 React 能做到“状态更新 -> 视图刷新”这一套动作行云流水,仿佛魔法一样? 答案就在两个字:Fiber。 而 Fiber 机制中最核心、最玄学、也是最硬核的部分,就是这个听起来有点像“光纤”或者“纤维”的东西——双缓存。 来,搬个小板凳坐好。今天我们要讲的是:React Fiber 双缓存机制:Current 树与 WorkInProgress 树的内存物理切换大戏。 第一幕:DOM 的“泥瓦匠”困境 在深入 Fiber 之前,我们得先明白 React 以前是怎么工作的,以及它为什么要搞这套双缓存。 想象一下,你是一个泥瓦匠。你面前有一面墙(DOM 树)。现在,老板来了,说:“这面墙颜色不对,给我换一种红色的砖头。” 作为一个普通的泥瓦匠,你的操作流程大概 …
继续阅读“React Fiber 双缓存机制:对比 current 树与 workInProgress 树在内存中的物理切换过程”