From cd450e99ae2f2769482dcf0a2f33521a2e5331fa Mon Sep 17 00:00:00 2001 From: macrogui <40064208+macrogui@users.noreply.github.com> Date: Fri, 18 Sep 2026 02:31:16 +0800 Subject: [PATCH] docs(cn): translate React 19.3 blog post --- src/content/blog/2026/09/09/react-19-3.md | 1951 +++++++++++++++++++++ 1 file changed, 1951 insertions(+) create mode 100644 src/content/blog/2026/09/09/react-19-3.md diff --git a/src/content/blog/2026/09/09/react-19-3.md b/src/content/blog/2026/09/09/react-19-3.md new file mode 100644 index 0000000000..8550e89dfe --- /dev/null +++ b/src/content/blog/2026/09/09/react-19-3.md @@ -0,0 +1,1951 @@ +--- +title: "React 19.3" +author: The React Team +date: 2026/09/09 +description: React 19.3 新增了视图过渡、Fragment Refs、browser()、Trusted Types 等新特性。 +--- + +2026 年 9 月 9 日 [The React Team](/community/team) + +--- + + + +React 19.3 现已在 npm 上发布! + + + + +[去年](/blog/2025/04/23/react-labs-view-transitions-activity-and-more),我们分享了即将在 React 中推出的新实验性 API:视图过渡(View Transitions)和 Fragment Refs。我们很高兴地宣布,这两项功能现已在 React 19.3 中正式稳定! + +在这篇文章中,我们将介绍它们的工作原理,并涵盖此版本中一些其他值得注意的变更。 + + + +--- + +## React 新特性 {/*new-react-features*/} + +### 视图过渡 {/*view-transition*/} + +新的 `` 组件允许你使用浏览器的 [View Transition API](https://developer.mozilla.org/en-US/docs/Web/API/View_Transition_API),为元素的进入、退出、移动或尺寸变化添加动画。去年我们将其[作为实验性 API 分享](/blog/2025/04/23/react-labs-view-transitions-activity-and-more#view-transitions),而在 19.3 中它已经稳定,可以正式使用了。 + +要为 UI 的某一部分添加动画,请将它包裹在 `` 中: + +```js +import { ViewTransition } from 'react'; + +{isShowing && ( + + + +)} +``` + +现在,每当一次被标记为 [Transition](/reference/react/useTransition) 的更新改变了子组件的样式,或者导致 `ViewTransition` 被挂载或卸载时,React 都会为这次更新添加动画。 + +{/* +Updates outside of a Transition don't trigger animations, as those are meant to be urgent and reflected immediately in the UI. State updates inside of [startTransition](/reference/react/startTransition), a [``](/reference/react/Suspense) reveal, or an update from [`useDeferredValue`](/reference/react/useDeferredValue) all cause a View Transition to animate. +*/} + +React 会根据树的变化方式来选择运行哪种动画: + +- **enter**:添加了 ``。 +- **exit**:移除了 ``。 +- **update**:`` 的子元素的样式或内容发生了变化。 +- **share**:一个具名的 `` 在一处被移除,同时在另一处被添加。 + +请注意,未被标记为 Transition 的更新不会触发动画,因为这类更新是紧急的,应当立即反映在 UI 中。[startTransition](/reference/react/startTransition) 内部的状态更新、[``](/reference/react/Suspense) 的内容展示,以及来自 [`useDeferredValue`](/reference/react/useDeferredValue) 的更新,都会让视图过渡播放动画。 + +下面是一个进入/退出动画的简单示例: + + + +```js src/Video.js hidden +function Thumbnail({video, children}) { + return ( +