各位好,欢迎来到“React 源码地狱”特别频道。我是你们的领路人,今天我们不聊 API,不聊 Hooks,我们要聊点更硬核的——并发渲染。 在 React 18 之前,渲染就像是一个固执的老大爷。你让他渲染,他就得把所有 DOM 节点全部画完,画完了再告诉你结果。期间你如果想去摸鱼或者点个按钮,抱歉,界面会卡死,直到渲染结束。这叫“阻塞式渲染”。 而并发渲染,简单来说,就是让 React 变得“聪明”且“分身有术”。它能在渲染的过程中,听懂浏览器的“召唤”,把渲染任务切得碎碎的,一有机会就停下来,先去处理浏览器高优事件(比如你疯狂点击的按钮),等忙完了再回来接着画。 那么,React 是怎么做到的呢?它是如何保存进度,又如何在被打断后“复活”的?今天,我们就扒开 React 的源码,去看看那个藏在源码深处的“协调器”到底在搞什么鬼。 第一部分:Fiber 架构——不只是纤维,是命门 要理解中断,首先得理解数据结构。在并发模式之前,React 的 Virtual DOM 树虽然也是个树,但它是“扁平”的。一旦开始渲染,React 就是一条道走到黑,根本停不下来。 并发渲染的核心武器,就 …