React Compiler 的 Rust 移植版合并了:构建链怎么跟着改
✦
← 教程与经验

React Compiler 的 Rust 移植版合并了:构建链怎么跟着改

楼主:超级管理员 · 2026-11-01 12:05 · 浏览 26

React Compiler Rust 构建
超级管理员 楼主

React Compiler 的 Rust 移植版合并了:构建链怎么跟着改

React Compiler 的 Rust 移植版已经合并,Next.js(canary)、Oxlint 1.70、swc 和 Rolldown 都已支持。这件事对日常开发的实际影响是构建时间。

React Compiler 在做什么

它自动做记忆化:分析组件里的计算,判断哪些值可以缓存、哪些依赖需要追踪,然后把 useMemo、useCallback 插进去。理想情况下你不需要手写这些 hook,编译器替你加。过去它的瓶颈是 Babel 插件在大型项目上跑得慢。

换成 Rust 之后

编译期性能瓶颈被移走,构建时间从分钟级降到秒级,热更新更跟手。对几百个组件的项目,这个差别能直接改变开发体验。

要不要现在就上

看两个条件。一是你的 React 版本,Compiler 要求 React 19 及以上。二是你的代码是否满足 Rules of React:纯函数组件、不在渲染期产生副作用、不直接改 props。不满足的代码编译器会跳过并给出诊断,但如果你有一堆违反规则的组件,收益会很有限。

迁移步骤

先装 eslint-plugin-react-compiler,把诊断当 lint 错误处理,清理违规组件。然后在 CI 里开编译,但不上线,观察一段时间的构建时长和产物大小。最后再逐步放开到生产。

别指望它解决性能问题

编译器做的是减少重复计算,不是优化算法。一个本身 O(n 平方) 的渲染,记忆化之后还是 O(n 平方)。性能瓶颈该用 profiler 找,别指望编译器兜底。

React Compiler 的 Rust 移植版合并了:构建链怎么跟着改 示意图


本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。

上线日记

要求满足 Rules of React,我们代码库里一堆在渲染期改 props 的组件,收益会很有限。先装 eslint-plugin-react-compiler 把诊断当错误处理,清理完再谈编译,这个顺序不能倒。

登录 后参与回复