2026年6月,React核心成员Joseph Savona在GitHub上合并了一个编号为#36173的Pull Request。这个PR将React Compiler从TypeScript完整移植到了Rust,1725个测试用例全部通过。Meta随后在Facebook、Instagram、Messenger、Threads等全部代码库中完成了全量验证,输出结果与TypeScript版本完全一致。

前端工具链的历史,在这一刻被改写了。

一、3倍还是10倍?两个数字分别对应什么

Rust版本的性能提升有两个关键数字:3倍和10倍。

作为Babel插件使用时,Rust版本端到端比TypeScript原版快约3倍。3倍已经足够让大型项目的构建时间显著缩短,但这还不是全部。

实际转换逻辑本身快了约10倍。为什么端到端只有3倍?因为Babel的AST序列化开销吃掉了大部分收益——Rust和Babel之间需要来回转换AST数据结构。一旦绕过Babel、直接集成进OXC或SWC等原生工具链,那10倍的性能才能真正释放出来。

Rspack的基准测试给出了更直观的数字:在Rspack 2.1中启用Rust版React Compiler后,rspack dev从10.6秒降到0.7秒,提升13.5倍;rspack build从9.3秒降到1.2秒,提升7.4倍。

Next.js方面,Vercel工程师Andrew Imm在v0(公司自己的大型Next.js应用)上测试后报告,编译速度提升了超过40%。Next.js官方账号确认,在其测试应用中路由编译速度提升了20%到50%。

Bun的集成数据更加惊人:同一份大型代码库,启用React Compiler后Bun在465毫秒内完成构建,而Babel插件需要9.15秒。

二、手动useMemo的时代,彻底结束了

React Compiler的核心价值是什么?自动记忆化。

过去,开发者需要手动使用useMemo、useCallback和React.memo来防止不必要的重渲染。这些API增加了心智负担,依赖数组漏写还会引入难以追踪的Bug。

React Compiler在构建阶段自动分析组件代码,识别可优化的计算节点,只在依赖值实际变化时触发重新渲染。其粒度是表达式级别,比任何手写useMemo都更精细。如果你的项目已经启用了React Compiler,手动使用memo()和useMemo()就不再必要了。

2026年7月,如果你还在手动写useMemo、useCallback、React.memo,你正在做一件编译器能替你搞定的苦力活。Rust重写后的React Compiler,让这件事从“能做”变成了“做得飞快”。

三、AI写了大部分代码,人类负责架构

这次移植还有一个值得关注的背景:大部分代码是由AI生成的。

Savona在PR中坦率说明:架构由人类(主要是他本人)精心设计,但大部分代码由AI编写。他花了大量时间设定架构、测试策略、增量迁移方案,并反复打磨代码质量。

移植策略是一个逐pass的移植——Rust版本将源码转换成与TypeScript版本相同的HIR中间表示,经过相同的编译pass序列,使用相同的算法。主要差异在数据表示上:为了适配Rust的借用系统,团队大量使用了arena式结构和索引。

这个项目证明了:在架构清晰、测试完备的前提下,AI可以承担大规模代码移植的机械性工作,而人类专注于更高层的设计决策。

四、工具链生态已全面跟进

Rust版React Compiler的合并,引发了一轮工具链的快速跟进:

Next.js 16.3已加入实验性支持,16.4将正式搭载

Rspack 2.1已通过内置SWC loader直接支持

Bun已集成React Compiler的Rust实现

Oxlint、SWC、Rolldown等工具均已开始集成

React Compiler的Rust移植,本质上是将编译器的 “引擎层”与“产品层”分离——Rust负责性能敏感的核心编译逻辑,TypeScript继续承载插件生态和开发者接口。这是一种已经被SWC、Turbopack、Biome验证过的成功模式。

五、对开发者的实际影响

对普通React开发者来说,这个变化意味着三件事:

第一,构建更快。 无论是本地开发还是CI/CD,Rust版React Compiler带来的速度提升都是实实在在的。大型项目可能从分钟级降到秒级。

第二,心智负担降低。 不再需要纠结useMemo的依赖数组,不再需要手动优化重渲染。编译器替你做了,而且做得更精细。

第三,工具链更统一。 Rust正在成为前端工具链的通用语言。SWC解析、Turbopack打包、React Compiler优化——整个链路都在向Rust靠拢,集成更紧密、性能更可预测。

手动useMemo的时代,确实到头了。不是因为它不好用,而是因为编译器能做得更好、更快、更自动。Rust重写只是让这件事从“理论可行”变成了“生产就绪”。