React 18 发布

2022-12-08 0 529

文 | 隔夜茶

公司出品 | OSC开放源码街道社区(ID:oschina2013)

React 18 也已正式发布,此版包括照相狸尾豆的改良,如手动格式化,捷伊 API(如 startTransition)和全力支持 Suspense 的INS13ZD服务端图形。报告书表示,React 18 中的很多机能都创建在捷伊mammalian图形器其内,这是两个弹出强悍新机能的主脑更动。Concurrent React 是较旧的,它仅在选用者选用mammalian功能时投入使用,但合作开发项目组认为它将会对德国大众构筑插件的形式造成关键性影响。他们花了数月时间研究和合作开发对 React mammalian的全力支持,因此他们当心为原有选用者提供更多逐渐选用的方向。今年冬天,他们设立了 React 18 小组,搜集街道社区研究者的意见反馈,保证整座 React 生态系的成功升级换代新体验。在 React 18 中,选用者还能开始选用 Suspense 在 Relay、Next.js、Hydrogen spense 出访统计数据。报告书表示,其对 Suspense 的蓝图仍旧更为重要是读取标识符——最终目标是扩充对 Suspense 的全力支持,以期最后完全相同的新闻稿式 Suspense fallback 能处置任何人异步操作形式(读取标识符、统计数据、影像等)。React 18 的新机能如下表所示:

手动格式化。格式化是 React 将数个状况预览各组到两个再次图形中以赢得更快的操控性。如果没有手动格式化,他们根本无法在 React 该事件执行程序中格式化预览。预设情况下,Promise、setTimeout、native event handlers 或任何人其他该事件外部的预览不会在 React 中格式化。选用手动格式化,这些预览将手动格式化:

// Before: only React events were batched.setTimeout(()=> { setCount(c => c + 1); setFlag(f => !f); // React will render twice, once for each state update (no batching)}, 1000);// After: updates inside of timeouts, promises,// native event handlers or any other event are batched.`setTimeout(()=> { setCount(c=> c + 1); setFlag(f => !f); // React will only re-render once at the end (thats batching!)}, 1000);

Transitions 是 React 中的两个新概念,用于区分 urgent 和 non-urgent updates。

<ul> <li><strong>Urgent updates </strong>反映了直接交互,例如 typing、clicking、pressing等。</li> <li><strong>Transition updates </strong>将 UI 从两个视图转换到另两个视图。</li></ul></li>import {startTransition} from react;// Urgent: Show what was typedsetInputValue(input);// Mark any state updates inside as transitionsstartTransition(()=> { // Transition: Show the results setSearchQuery(input);});

捷伊 Suspense 机能。如果组件树的一部分尚未准备好显示,Suspense 允许你以新闻稿形式指定组件树的读取状况:

<Suspense fallback={<Spinner />}><Comments/>Suspense>Suspense 使“UI loading state”成为 React 编程模型中的 first-class 新闻稿性概念。这让他们能在它其内构筑更高级别的机能。React 18 中在服务器上添加了对 Suspense 的全力支持,并选用mammalian图形特性扩充了它的机能。React 18 中的 Suspense 与 transition API 结合选用时效果最佳。如果你在 transition 期间 suspend,React 将防止已经可见的内容被 fallback 所取代。相反,React 会延迟图形,直到读取了足够的统计数据以防止出现错误的读取状况。

新的客户端和服务器图形 API。这些更动允许选用者在升级换代到 React 18 中的新 API 时继续选用 React 17 模式下的旧 API。

捷伊严格模式行为 (Strict Mode Behaviors)。此机能将为 React 插件提供更多更快的照相狸尾豆操控性,但要求组件能够对多次挂载和销毁的效果具有弹性。大多数效果无需任何人更动即可工作,但有些效果假定它们只挂载或销毁一次。为了帮助解决这些问题,React 18 为严格模式引入了两个捷伊仅限合作开发的检查。每当第一次安装组件时,此新检查将手动卸载并再次挂载每个组件,并在第二次挂载时恢复先前的状况。

*

React mounts the component.

*

Layout effects are created.

*

Effects are created.

*

React simulates unmounting the component.

*

Layout effects are destroyed.

*

Effects are destroyed.

*

React simulates mounting the component with the previous state.

*

Layout effects are created.

* Effects are created.更多详情可查看:https://reactjs.org/blog/2022/03/29/react-v18.html

End

OSC开放源码街道社区
,赞 26

React 18 发布觉得不错,请点个在看

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务