首页 / 文章 / 最终发布的版本是 React 19.2,而非 React 20。

最终发布的版本是 React 19.2,而非 React 20。

目前还没有 React 20。React 19.2 添加了 useEffectEvent、Activity 功能,改进了开发者工具的跟踪功能,并优化了 Suspense 的性能——现在就升级值得。

564 词

围绕“React 20”的搜索量很大,但实际上与其说是重大版本传闻,不如说它更关乎实际发布情况。

目前还没有React 20的版本发布。真正已经推出的是React 19.2,其改动幅度足够大,让人们合理地认为必定有了重大升级。

19.2版本中实际加入了什么

useEffectEvent为效应函数提供了一种稳定方式,使其能够读取最新的属性和状态,而无需将这些值放入依赖列表中(相关问题编号为#22646)。过去为避免闭包过时而将值存放在useRef中的临时解决方案对于这种模式来说已不再必要。

// before: ref juggling to avoid stale closures
const onScrollEvent = useEffectEvent((currentTheme) => {
  logScrollPosition(currentTheme);
});

useEffect(() => {
  const handler = () => onScrollEvent(theme);
  window.addEventListener('scroll', handler);
  return () => window.removeEventListener('scroll', handler);
}, []); // theme intentionally left out — useEffectEvent handles it

Activity功能可以在隐藏组件状态的同时使其保持活跃,这非常适合标签页、屏幕外的路由以及需要在离开后又返回时仍保留滚动位置的列表。

Chrome DevTools 现已在 React 性能追踪功能中直接显示 React 的渲染与提交阶段。您无需仅凭常规性能分析来猜测,就能清楚知道是哪些操作导致了帧率下降。

Suspense 功能也得到了改进:嵌套边界带来的意外情况更少了,内容逐步加载时的过渡效果也更流畅。

为何这不仅仅是版本号而已

开发人员的日常使用体验仍是功能规划的核心:团队采用的大多数特性都是为了解决实际问题,而非强制引入全新的 React 思维模式。——摘自 2026 年 React 现状调查报告

这种定位与产品的开发方向一致。React 并非在追求华丽的 v20 标识,而是在不断填补日常使用中的漏洞:如 Effects 中的旧闭包问题、DevTools 的缺陷,以及屏幕暂时不可见时丢失的 UI 状态等问题。

现在应立即采取的行动

  • 如果仍在使用19.0版本,请升级到19.2版本;该版本设计为保持向后兼容性。
  • 在仅需最新值且无需重新订阅的情况下,用useEffectEvent替代基于ref的Effect技巧。
  • 对于包含大量标签页或向导式界面的应用,为保留隐藏页面,可先尝试使用Activity,再决定是否引入其他状态管理库。
  • 将该版本与React Compiler(自2025年末已稳定发布)搭配使用,这样在编译器已能处理记忆化功能的地方,就可以减少手动编写useMemo和useCallback的必要。

其在整体架构中的定位

这些更新与Next.js的服务器组件、TypeScript更严格的类型推断机制以及Tailwind CSS的实用优先式样式系统相得益彰。当前的全栈JavaScript技术栈仍在不断融合,而非分裂为不同的阵营。

如需权威详细信息,建议参考React官方博客及版本文档,而非那些二手的“React 20”汇总文章。官方文档更能反映实际发布的功能。

简而言之:炒作周期快于发布周期。仅凭Effect、Activity、DevTools和Suspense等方面的改进,React 19.2就已经值得采用。紧跟官方源码,在适合您应用时进行升级,这样当真正的新重大版本推出时您就能随时准备就绪。