React 是 Meta(Facebook)出品的开源 JavaScript 库,用来构建网页用户界面:前端开发者把页面拆成一个个组件,再组合成完整界面。它是目前全球使用最广的前端库之一。2026 年 9 月 9 日,React 19.3 正式发布,已在 npm 上可安装。这次更新的核心是把两个去年公开的实验特性转正为稳定 API:视图过渡组件 <ViewTransition>,以及 Fragment Refs;同时新增 browser()、Trusted Types 等特性。如果你在用 React 做界面,这篇文章值得读完——尤其是想要「界面切换带平滑动画」、却不想引第三方动画库的开发者。
View Transitions:给界面元素加上平滑过渡动画
先解释这是什么。View Transition API 是浏览器提供的一种动画机制:当页面里的元素出现、消失、移动或改变尺寸时,浏览器自动生成一段平滑的过渡效果,而不是瞬间变化。React 19.3 之前,开发者要在 React 里用上它需要写不少胶水代码;现在官方提供了 <ViewTransition> 组件,把要动画的部分用这个组件包起来就行:
import { ViewTransition } from 'react';
{isShowing && (
<ViewTransition>
<Component />
</ViewTransition>
)}
React 会根据界面树的变化自动选择动画类型:
- enter:
<ViewTransition>被加入(元素进场); - exit:
<ViewTransition>被移除(元素退场); - update:内部子元素样式或内容变化;
- share:带名字的
<ViewTransition>在界面一处移除、另一处出现(元素「搬家」)。
需要说明的是,动画只在被标记为 Transition 的更新中触发——比如 startTransition、Suspense(React 处理异步加载的占位机制)加载完成、useDeferredValue(延迟更新某个值的机制)触发的更新;紧急更新(用户点击后必须立刻反映的)不会附加动画,避免拖慢响应。
默认动画是平滑的交叉淡入淡出(cross-fade)。想自定义时,可以用 View Transition Class 配合 CSS 定义动画,或者用浏览器 Web Animations API 配合 onEnter、onExit、onShare、onUpdate 事件属性。
配套还有一个新 API 叫 addTransitionType:同一个更新想根据原因用不同动画时(比如轮播图前进从右滑入、后退从左滑入),可以给过渡打一个类型标签,再在 CSS 里按类型分别定义动画。
<ViewTransition> 与 Suspense 集成得很好:把 Suspense 边界包在组件里,子内容加载完成时,会从加载占位(fallback)平滑过渡到最终内容。
目前 <ViewTransition> 只支持 DOM 环境(浏览器网页),React Native 等平台的支持还在开发中。
Fragment Refs:Fragment 也能挂引用
ref(引用)是 React 里让代码直接拿到某个 DOM 节点、从而操作它的「把手」。React 的 Fragment(写作 <>...</>)是一组元素的轻量包裹方式:它不产生额外的 DOM 节点,只是把多个元素「打包」。在 19.3 之前,Fragment 不能挂 ref;现在可以了,这给某些需要直接操作一组元素(而不是单个节点)的场景提供了更干净的写法。这个 API 同样在去年以实验形式公开,本次转正。
Trusted Types 与 browser() 等更多更新
除了上面两个转正特性,React 19.3 还新增了 Trusted Types 与 browser() 等特性。Trusted Types 是浏览器的一项安全机制,用于从源头防范 DOM XSS 攻击(恶意脚本注入页面);React 19.3 对它的支持细节,可查阅官方发布说明。
升级与生态背景
这次更新正赶上 React 生态的两个里程碑:一是 React Foundation 已于 2026 年 2 月 24 日在 Linux 基金会下正式启动,React 的治理走向中立;二是 2025 年 12 月 React Server Components(RSC,React 的服务器端渲染组件方案)连续披露安全漏洞——12 月 3 日是一个无需登录即可远程执行代码(RCE)的高危漏洞,官方在 19.0.1、19.1.2、19.2.1 中修复并强烈建议立即升级;12 月 11 日又追加披露了拒绝服务与源码泄露两个漏洞。对线上项目而言,升级到修复版本比尝鲜新功能更紧急。
一句话带走:React 19.3 让「界面平滑过渡动画」变成一行组件包裹的事,同时把 Fragment Refs 转正;如果你的项目还在 19.2.1 之前的版本,先升级、再尝鲜。