React 19.3.0 版本解读:ViewTransition 动画、Fragment Refs 与 browser() 新 API
React 于 2026-09-09 发布 19.3.0,这是一次以新 API 与渲染行为改进为主的 minor 版本:带来 View Transition 动画支持、Fragment Refs、服务端友好的 browser() API,并让 Transitions 独立渲染,不再互相阻塞。
新特性
<ViewTransition />与addTransitionType:新增 ViewTransition 组件与配套 API,为 React 应用接入浏览器 View Transition 动画提供一等公民支持,可在状态更新时驱动平滑的视图过渡效果。- Fragment Refs:
<Fragment>现在支持 ref,可在不引入额外 DOM 节点的前提下获得可组合的平台行为。 browser()新 API:新增 react-dom APIbrowser()——在服务端渲染时抛错、在浏览器中解析。在<Suspense>边界内使用use(browser())可将子树标记为仅浏览器渲染,且不会上报可恢复错误。onBrowserBailout选项:react-dom/server API 新增该选项,用于观察哪些子树延迟到浏览器端渲染。- Transitions 独立渲染:Transitions 不再被纠缠进同一次渲染,慢的 transition 不再拖住无关的 transition。
- Trusted Types API 集成:默认启用 Trusted Types 集成,增强 XSS 防护兼容性。
- DEV-only 警告:组件看起来被条件式
use()调用「解除阻塞」时给出开发警告。
其他值得关注的变更
- 修复 Fast Refresh 在
lazy()、memo()比较函数等场景下的热更新问题(编辑memo()比较函数现在会生效); - Activity 相关修复:隐藏 Activity 时正确隐藏 portal 内容、防止隐藏树中错误逃逸到可见 UI、修复
useSyncExternalStore在 Activity 隐藏期间丢失 store 变更等; - React DOM:
submit事件包含 submitter、自动重置表单时触发onReset、type="number"输入的defaultValue行为与其他输入类型对齐、新增onFullscreenChange/onFullscreenError事件、支持maskTypeSVG 属性与 iframecredentialless布尔属性等; - 修复
useDeferredValue卡住、Suspense fallback 的 context 传播等问题。
适用场景
- 需要页面级/列表级过渡动画的 React 应用可优先评估
<ViewTransition />; - 依赖 react-dom/server 做 SSR、且部分组件仅浏览器可用的场景,可用
browser()+onBrowserBailout更优雅地处理降级; - 多 transition 并发场景(如表单提交与导航同时发生)受益于独立渲染行为;
- 升级注意:本次为功能版本,建议升级后跑一遍 Fast Refresh 与 StrictMode 相关回归。