Meta 的 UI 库 React 发布了 19.2 版本,引入了一批新的 API、性能改进和服务器渲染增强功能。此更新为活动控制、效果和信号缓存添加了一流的基元。
React 19.2 提供了几个新的核心功能。Activity 组件允许开发人员将 UI 分解为命名的“活动”,这些活动可以有条件地呈现或挂起。
传统上,开发人员可以使用条件来隐藏或显示组件,例如:
相反,可以使用新的活动组件:
新组件支持可见和隐藏模式,可以更精细地控制 UI 段。Activity 将使开发人员能够在对用户隐藏的情况下预渲染组件。它在隐藏时保留其状态。React 团队表示,他们将在未来为 Activity 添加更多模式。
新的 useEffectEvent 钩子提供了一种机制,将 useEffect 逻辑的事件部分解耦到一个单独的钩子中。当开发人员具有使用某个值但不应在该值更改时重新运行的效果时,这非常有用。使用 ,事件中引用的任何值都不需要在 .发行说明还指定您不应在 的依赖数组中使用 effect 事件。新版本的 eslint-plugin-react-hooks 已经发布,以提供对更改的支持。useEffectEventuseEffectuseEffect
关于引入 的反馈褒贬不一,一位用户在 X 上评论说 React 正在尝试解决给自己带来的问题,另一位用户则说他们创建了一个全新的钩子只是为了修复 linting 规则。React 核心团队成员回复了其中一些批评,认为这不仅仅是 React 的问题,所有响应式模型都有办法选择退出响应式,并引用了其他框架的“untrack”示例。useEffectEvent
reddit 上的一位开发人员认为,自从首次引入钩子以来,就迫切需要新的钩子。
React 19.2 还引入了 cacheSignal,它提供了在 React 服务器组件中知道生命周期何时结束的能力。一旦组件过期,它就会返回一个 AbortSignal,让开发人员可以控制清理任何正在进行的作。cache()cache()
在 React DOM 方面,19.2 中添加了部分预渲染。应用程序的某些部分可以在服务器端预渲染,然后稍后恢复渲染以添加动态内容,从而提高初始加载响应能力。
一些内部更改也是该版本的一部分,例如对 SSR 的批处理悬念边界的错误修复。悬念边界现在将在服务器渲染时进行批处理,从而导致内容一起显示,而不是在不同的时间显示。
现在都可用,添加了 renderToReadbleStream、prerender、resume 和 resumeAndPrerender 对 Web Streams 的支持。尽管文档中有一个注释建议使用 Node Streams 而不是 Web Streams,因为 Node Streams 速度要快得多,并且 Web Streams 默认不支持压缩。
React 19.2 是继今年早些时候的 19.1 之后,自 19.0 以来的第三个版本,并延续了稳步的增量改进节奏。开发人员可以在 React 博客上找到完整的更改列表。
React 是一个开源 JavaScript 库,用于以声明方式高效地构建用户界面。它用于 Web 和原生生态系统,提供钩子、并发渲染、服务器组件和不断发展的编译器等功能。