
React 这个 Meta 的 UI 库已经发布了19.2版本,引入了一批新的 API、性能改进和服务端渲染增强特性。这次更新增加了用于活动控制、效果和信号缓存的一等公民原语.
React 19.2 推出了几个新的核心特性。Activity组件允许开发者将 UI 分解成可以有条件渲染或挂起的命名“活动”。
传统上,开发者可以使用条件语句来隐藏或显示组件,例如:
现在可以使用新的 Activity 组件:
新组件支持可见和隐藏模式,对 UI 部分的控制更加精细。Activity 将允许开发者在用户看不见时预渲染组件。在隐藏时保留其状态。React 团队表示,他们将在未来为 Activity 添加更多模式。
新的useEffectEvent钩子提供了一种机制,将 useEffect 逻辑中的事件部分解耦到一个单独的钩子中。这在开发者有一个使用值但不应在使用该值变化时重新运行的效果时非常有用。有了 useEffectEvent,事件中引用的任何值都不需要在 useEffect 的依赖数组中使用。发布说明还特别指出,也不应该在 useEffect 的依赖数组中使用效果事件。Meta 已经发布了eslint-plugin-react-hooks的新版本,以支持这些变化。
对于 useEffectEvent 的引入,反馈褒贬不一,有用户在 X 上评论说 React 试图解决自己造成的问题,另一个用户则表示他们只是为了修复一个 linting 规则而创建了一个全新的钩子。React 核心团队成员对这些批评做出了回应,认为这不仅仅是 React 的问题,所有响应式模型都有退出响应的方式,并引用了其他框架中的'untrack'示例。
一位 Reddit 开发者认为,自从钩子首次引入以来,这个新钩子就一直是大家迫切需要的。
React 19.2 还引入了cacheSignal,它提供了在 React 服务端组件中知道 cache()生命周期何时结束的能力。它在组件的 cache()过期时立即返回一个AbortSignal,让开发者可以清理任何正在进行的操作。
在 React DOM 方面,19.2 中增加了部分预渲染。应用程序的部分可以预先在服务端渲染,然后稍后继续渲染以添加动态内容,提高初始加载响应性。
新版还包括一些内部变化,例如修复了 SSR 的 Batching Suspense Boundaries 的 bug。现在,当服务器渲染时,Suspense 边界将批量处理,导致内容一起显示而不是在不同时间显示。
新版添加了对Web Streams的支持,renderToReadbleStream、prerender、resume和resumeAndPrerender现在都可用。尽管文档中有一个注释推荐使用 Node Streams 而不是 Web Streams,因为 Node Streams 速度要快得多,Web Streams 默认不支持压缩。
React 19.2 是自 19.0 以来的第三个发布版本,继今年早些时候的 19.1 之后,继续稳步进行增量改进。开发者可以在React博客上找到完整的变更列表。
React 是一个开源的 JavaScript 库,用于声明性和高效地构建用户界面。它在 Web 和原生生态系统中使用,提供钩子、并发渲染、服务端组件和不断发展的编译器等功能。
原文链接:Meta Ships React 19.2 Featuring Activity API, Cache Signals, and SSR Enhancements








评论