写点什么

React 18 发布

  • 2022-04-01
  • 本文字数:1178 字

    阅读完需:约 4 分钟

React 18 发布

3 月 29 日,React 团队宣布 React 18 正式发布。该版本的主要更新包括开箱即用的功能改进,如自动批处理、新的 AIP(如 startTransition)和支持 Suspense 的流式服务器端渲染。

 

官方博客指出,此版本许多功能都建立在新的并发渲染器之上,这是一个解锁强大新功能的幕后更改。Concurrent React 是可选的,它仅在用户使用并发功能时启用,但开发团队认为它将会对大众构建应用程序的方式产生重大影响。

 

“我们花了数年时间研究和开发对 React 并发的支持,并且我们特别注意为现有用户提供逐步采用的路径。去年夏天,我们成立了 React 18 工作组,收集社区专家的反馈,确保整个 React 生态系统的顺利升级体验。”

 

React 18 的新功能如下:

 

自动批处理功能

 

React 将多个状态,更新到单一的重新渲染作业中,以获得更好的性能,过去没有自动批处理,开发者只能在 React 事件处理程序中批处理更新,而在默认状态下,Promise、setTimeout、原生事件处理程序,或任何 React 内部事件的更新不会在 React 中批处理,而在 React 18 中,这些更新都将可以自动批处理。

 

Transitions 功能

 

React 18 引入了 Transition 的新概念,用来区分紧急和非紧急更新。紧急更新表现在直接交互像是输入、点击和按下等操作,非紧急的过渡更新,则是将 UI 从视图过渡到另一个视图。官方表示,之所以打字、点击和按下等紧急更新需要立即回应,是因为对用户来说,如果这些行为没有立刻获得回应,用户会觉得应用程序发生问题,但是并非所有过渡都是相同的,因为用户并不会期望在屏幕增至到每个中间值。

 

因此开发者应该将单一用户的输入,区分为紧急更新与非紧急过渡更新,以提供最佳的用户体验,开发者可以在输入事件中,使用 startTransition API,来告知 React 紧急与非紧急过渡更新。

 

新的 Suspense 功能

 

开发者现在可以在 React 18 中结合使用 Suspense 与过渡 API,以获得最佳的效果。Suspense 可以让还没准备好渲染的 UI,显示为加载状态,来解决程序代码分割(Code-splitting)和资料截取的问题。在这次更新中,React 会推延渲染,直到应用程序加载足够的资料,以异步操作避免错误的加载状态出现。

 

新的客户端和服务器渲染 API

 

在这个版本中,开发团队重新设计了他们为在客户端和服务器上呈现而公开的 API。这些更改允许用户在升级到 React 18 中的新 API 时继续使用 React 17 模式下的旧 API。

 

新的严格模式行为 (Strict Mode Behaviors)

 

此功能将为 React 应用程序提供更好的开箱即用性能,但要求组件能够对多次挂载和销毁的效果具有弹性。大多数效果无需任何更改即可工作,但有些效果假定它们只挂载或销毁一次。为了帮助解决这些问题,React 18 为严格模式引入了一个新的仅限开发的检查。

 

每当第一次安装组件时,此新检查将自动卸载并重新安装每个组件,并在第二次安装时恢复先前的状态。

 

原文详情:

 

https://reactjs.org/blog/2022/03/29/react-v18.html

2022-04-01 13:358901

评论

发布
暂无评论
发现更多内容

从直播硬件出发,浅析直播技术到物联网设备的智能化趋势

阿里云视频云

阿里云 物联网 直播 直播技术 视频云

CRM报告如何改变您的业务

低代码小观

低代码 企业管理 CRM 企业管理系统 CRM系统

1. 编译原理概览

书旅

Go 后端 编译原理 源码剖析

再下一城!两大社区携手打造 API 日志监控新利器

API7.ai 技术团队

云原生 网关 日志管理 Apache APISIX Apache RocketMQ

Java开发之命名规范

@零度

Java 命名规范

什么是反序列化?反序列化的过程,原理

网络安全学海

黑客 网络安全 信息安全 渗透测试 反序列化

管控一体化 | IM即时通讯构建企业协同生态链

WorkPlus

10个常见的前端手写功能,你全都会吗?

CRMEB

从4K到8K,谁才是开启8K时代的钥匙?

郑州埃文科技

数据库 IP 8k

重磅!博睿数据Go语言智能探针技术GoAgent国内首发

博睿数据

今日谈:信道复用、PPP帧、ARP协议的有关知识

恒生LIGHT云社区

信道编码 ARP协议 PPP

阿里云李克:边缘云技术发展与实践

阿里云Edge Plus

CDN 边缘计算 CDN加速

Flink Sql Gateway的原理与实践

安第斯智能云

数据库 sql

数百名专家政要出席阿联酋区块链大会“DCS 2021 ” 虎符受邀亮相

区块链前沿News

Hoo 虎符交易所 区块链峰会 DCS 2021 全球分布式云存储峰会

LevelDB封装和功能拓展

FunTester

数据库 测试框架 测试开发 leveldb FunTester

Hybris commerce产品主数据的搜索API,批量返回若干主数据的值

汪子熙

28天写作 SAP 12月日更

前端布局中让子元素横向排列并自动换行

Changing Lin

Vue 前端开发 12月日更

压测大师链路监控服务开放免费体验预约

WeTest

国内首次Feature Store Meetup回顾

第四范式开发者社区

机器学习 第四范式 OpenMLDB 特征平台

Android C++系列:Linux Socket编程(四)多路IO转接服务器

轻口味

28天写作 12月日更

飞桨企业版重磅发布智能边缘控制台,5分钟零代码自动化模型部署

百度大脑

人工智能

十一月热点:BML预置模型调参添新利器;EasyDL图像分类上线免训练极速迭代模式

百度大脑

人工智能

网络安全产品之堡垒机应用于教育行业案例讲解

行云管家

网络安全 教育 等保 等级保护

CurveFS预览版重磅首发,Curve加速迈向云原生软件定义存储

网易数帆

GitHub

VUEX的store用法

CRMEB

为什么我不怎么用调试器

Justin

软件开发 28天写作 调试工具

微服务架构 | 如何优化日志链路追踪输出SQL的执行效率?

码农架构

微服务架构 链路追踪 SpringCloud

MySQL从入门到入魔(01)

海拥(haiyong.site)

MySQL 入门 28天写作 12月日更

12月17日技术大咖云集,云智技术论坛“年度收官”聚焦知识智能化

百度大脑

人工智能

3个步骤,4大平台,搞定大规模数据处理

百度开发者中心

大数据

使用 Nocalhost 开发 Kubernetes 中的 APISIX Ingress Controller

CODING DevOps

Kubernetes 云原生 APISIX Nocalhost Ingress Controller

React 18 发布_大前端_闫园园_InfoQ精选文章