React 18 就要来了,来看看发布计划

2025-05-29 0 96

React 18 就要来了,来看看发布计划

React 在今天刚刚在官网发布了有关于 React 18 的计划更新(The Plan for React 18 – React Blog),同时发布了 Alpha 版本的 npm 包:The Plan for React 18 – React Blog​reactjs.org

React 18 就要来了,来看看发布计划

官推

最近虽然忙到没时间做视频,不过这么大的事还是值得来聊聊(趁着公司电脑强制要求升 Big Sur 不让不让用的间隙……)。本文并非逐字翻译,一如既往的会带不少个人想法,不代表公司观点(听说这句话其实说了并没什么卵用是吧 Oppo)。

React 18 正式引入了对并发模式/特性的「渐进升级」策略

之前我就提到过 React 18 会把重点放在解决兼容性和如何做迁移的问题上。

自从 Concurrent Mode(并发模式,以下简称 CM)宣布以来,Core Team 成员每天在推上 Github 上「XXX is not CM-safe」吓死个人,使得整个社区都一直在担心未来的 React 是不是会为了上 CM 直接 breaking change,然后不兼容 CM 的代码必须要全部迁移过来才能用 CM("all-or-nothing" upgrade strategy)。

这次 18 的计划发布终于横扫了大家的担忧 —— 并发的引入将会是 opt-in 得,不用的话就没有 breaking changes,整体采用了渐进升级的策略(gradual adoption strategy)。

博文里基本没讲怎么渐进,只是说「升级到 18 几乎不需要任何改动」。其实大概上有两个地方做到了「渐进」:

  1. React 团队对 "Concurrency opt-in" roots 的兼容性做了很多优化,如果不用 CM 特性的话,大概率能 just works。如博客所说「concurrent rendering will only be enabled for updates triggered by one of the new features.」——从此再无 CM,只有 Concurrent Features(并发特性)
  2. 对于直接想让应用的某一部分「躺平」的可以用 legacy root。我之前在VLOG 第四期中就和大家提到过,17 对事件系统的修改的目的之一就是为了让你的 React 应用同时可以跑在不同「版本」上。18 的实际做法是引入了新的 Root APIReactDOM.createRoot来与旧的ReactDOM.renderAPI 区分开来,你可以将整个 React 树分形成不同的 roots,用旧 API 的 legacy roots 会跑在「legacy mode 传统模式」上(相当于跑在 17 上),用新 API 的 roots 会跑在 "Concurrency opt-in" roots 下。

React 18 的其他新特性

  1. 更加激进的「自动 batching」,React 17 只在事件回调中 batch,React 18 则会对任何来源的 setState 做尽可能多的 batching。 如果你跟我一样是用类似 state monad 的 mental model 来思考 state 的话,你可能会以为 React 早就是这个行为了。对于 Hooks 来说你是没有办法拿到中间状态的 state 而 Class 可以拿this.state。这也是我以前说过的 class 对比 FC 的纯度问题。
  2. 新的startTransitionuseDeferredValueAPI,本质上都是允许你将 UI 的一部分标记为「较低的更新优先级」。
  3. Suspense SSR。你可能知道也不知道的是,完全用 React 重写的新Facebook.com 是用 Hermes 做 SSR 来优化首屏渲染得,所以 SSR 的优化就成为了 React 团队的优先级之一啦……但是传统 SSR 的一个问题是,全量渲染话延迟太高了。而 CM + Suspence 就可以做到用 Suspence boundary 将应用分片,然后以此为单位做流式 SSR,是不是有重新发明 BigPipe 的感觉了?
  4. StrictMode在既 double-render 之后加入了 double-effect

可以看到,随着 CM 的逐渐落地,其「底层能力」的一面终于开始逐渐显著出来,越来越多的上层应用将会发布以及正在开发中(比如 Brian 提到的 Offscreen API 以及 RN Pre-render)等。

React 18 工作组

最后呢就是 React 成立了一个工作组(WG,Working Group)来向整个社区公开有关 18 的讨论与进度。这里的重点是帮助社区的主要框架、类库作者在 18 Alpha 阶段开始迁移,这样当 18 真正发布时社区能够准备充分一些,React 团队一向把开发者体验放在非常高的位置。

React 18 就要来了,来看看发布计划
React 不用我都不知道 Github 还有 Discussions 这个功能……

原文链接:https://zhuanlan.zhihu.com/p/379072979?utm_source=tuicool&utm_medium=referral

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 React 18 就要来了,来看看发布计划 https://www.kuaiidc.com/93190.html

相关文章

发表评论
暂无评论