React Compiler 1.0:自动 memo 化走进生产环境
自 2025 年 10 月起稳定、并在整个 2026 年被广泛采用的 React Compiler,无需手写 useMemo 或 useCallback,就能自动优化组件。它究竟改变了什么。
手写 useMemo 的终结?
多年来,优化一个 React 应用意味着到处撒下 useMemo、useCallback 和 React.memo——手工活,枯燥,且容易出错。自 2025 年 10 月 7 日起以 1.0 稳定的 React Compiler 把这套逻辑颠倒了过来:它在编译期自动为组件和 Hook 做 memo 化,你不必重写任何东西。
它具体做什么
编译器分析你的代码,替你插入优化。它在 React 与 React Native 上都能工作,已在 Meta 的应用中经受充分打磨,并以「可用于生产」的姿态发布。在 Meta Quest Store 上,Meta 报告初次加载与导航最多 +12 %,某些交互快 2.5 倍以上。
采用在 2026 年提速
- React 的版本持续稳定发布(到 2026 年 6 月的 19.2.7)。
- 2026 年 4 月,
eslint-plugin-react-hooks7.1.0 加入了对 ESLint v10 的支持,跳过对非 React 文件的编译(性能收益),并改进了对 effect 内set-state的检测。 - 工具方面,启用它需经由一个 Babel 插件;React 团队正与 oxc 和 Rolldown 合作,以实现更快的集成。
它改变了我的工作方式
两点。其一,噪音更少:业务代码不再被防御性优化污染。你写可读的 React,memo 化交给编译器。其二,微妙的性能 bug 更少:那些你忘掉的 useCallback、那些填写不当、导致整棵子树重渲染的依赖数组——编译器会一致地处理它们。
但要当心:它不是魔法棒。违反 React 规则(渲染期间的可变操作、副作用)的代码不会被优化——编译器会提醒你。这甚至是一种好纪律:它促使你写出正确的 React。
React Compiler 不能替代对渲染的理解。它奖励干净的代码,惩罚马虎的代码。
今天该启用它吗?
对于一个全新的 React 19 / Next.js 项目,是的:收益几乎是免费的。对于既有代码库,则渐进式启用,借助 linter 找出不合规的组件。在我的项目里,规则很简单:让编译器去优化,而把架构的主导权握在自己手里。