React 17 正式版发布

栏目: 软件资讯 · 发布时间: 4年前

内容简介:React 17 正式版已经发布,本次版本变更日志如下: React 为全新的 JSX 转换器添加 react/jsx-runtime 和 react/jsx-dev-runtime。 根据原生框架构建组件调用栈。 可以在 context 中设置 displayName 以改善调用栈...

React 17 正式版已经发布,本次版本变更日志如下:

React

  • 为全新的 JSX 转换器添加 react/jsx-runtimereact/jsx-dev-runtime
  • 根据原生框架构建组件调用栈。
  • 可以在 context 中设置 displayName 以改善调用栈信息。
  • 防止 'use strict' 从 UMD 的 bundles 中泄露。
  • 停止使用 fb.me 进行重定向。

React DOM

  • 将事件委托从 document 切换为 root。
  • 在运行下一个副作用前,请清理所有副作用。
  • 异步运行 useEffect 清理函数。
  • 使用浏览器的 focusinfocusout 替换 onFocusonBlur 的底层实现。
  • 将所有 Capture 事件都使用浏览器的捕获阶段实现。
  • 禁止在 onScroll 事件时冒泡。
  • 如果 forwardRefmemo 组件的返回值为 undefined,则抛出异常。
  • 移除事件池。
  • 移除 React Native Web 不需要的内部组件。
  • 当挂载 root 时,附加所有已知的事件监听器。
  • 在 Dev 模式下,禁用第二次渲染过程中的 console
  • 弃用为记录且具有误导性的 ReactTestUtils.SimulateNative API。
  • 重命名内部使用的私有字段
  • 不在开发环境调用 User Timing API。
  • 在严格模式下重复渲染期间禁用 console。
  • 在严格模式下,二次渲染组件也不使用 Hook。
  • 允许在生命周期函数中调用 ReactDOM.flushSync(但会发出警告)。
  • code 属性添加到键盘事件对象中。
  • video 元素添加 disableRemotePlayback 属性。
  • input 元素添加 enterKeyHint 属性。
  • 当没有给 <Context.Provider> 提供任何值时,会发出警告。
  • 如果 forwardRefmemo 组件的返回值为 undefined,则抛出警告。
  • 为无效更新改进错误信息。
  • 从调用栈信息中忽略 forwardRef 和 memo。
  • 在受控输入与非受控输入间切换时,改善错误消息。
  • 保持 onTouchStartonTouchMoveonWheel 默认为 passive。
  • 修复在 development 模式下 iframe 关闭时,setState 挂起的问题。
  • 使用 defaultProps 修复拉架子组件在渲染时的问题。
  • 修复当 dangerouslySetInnerHTMLundefined 时,误报警告的问题。
  • 使用费标准的 require 实现来修复 Test Utils。
  • 修复 onBeforeInput 报告错误的 event.type
  • 修复 Firefox 中 event.relatedTarget 输出为 undefined 的问题。
  • 修复 IE11 中 "unspecified error" 的问题。
  • 修复 shadow root 中的渲染问题。
  • 使用事件捕获修复 movementX/Y polyfill 的问题。
  • 使用委托处理 onSubmitonReset 事件。
  • 提高内存使用率。

React DOM Server

  • 使用服务端渲染的 useCallbackuseMemo 一致。
  • 修复函数组件抛出异常时状态泄露的问题。

React Test Renderer

  • 改善 findByType 错误信息。

Concurrent Mode(实验阶段)

  • 改进启发式更新算法。
  • 在实现性 API 前添加 unstable_ 前缀。 
  • 移除 unstable_discreteUpdatesunstable_flushDiscreteUpdates
  • 移除了 timeoutMs 参数。
  • 禁用 <div hidden /> 预渲染,以支持未来的 API。
  • 为 Suspense 添加了 unstable_expectedLoadTime,用于 CPU-bound 树。
  • 添加了一个实现性的 unstable_useOpaqueIdentifier Hook。
  • 添加了一个实验性的 unstable_startTransition API. 
  • 在测试渲染器中使用 act 后,不在刷新 Suspense 的 fallback。
  • 将全局渲染的 timeout 用于 CPU Suspense。
  • 挂载前,清除现有根目录的内容。
  • 修复带有错误边界的 bug。
  • 修复了导致挂起树更新丢失的 bug。
  • 修复导致渲染阶段更新丢失的 bug。
  • 修复 SuspenseList 的 bug。
  • 修复导致 Suspense fallback 过早显示的 bug。
  • 修复 SuspenseList 中使用 class 组件异常的 bug。
  • 修复输入内容可能被更新被丢弃的 bug。
  • 修复暂挂 Suspense fallback 后卡住的错误。
  • 如果 hydrate 中,不要切断 SuspenseList 的尾部。
  • 修复 useMutableSource 中的 bug,此 bug 可能在 getSnapshot 更改时出现。
  • 修复 useMutableSource 令人恶心的 bug。
  • 如果外部渲染且提交之前调用 setState,会发出警告。

 

react v17 新特性详情:https://reactjs.org/blog/2020/10/20/react-v17.html


以上所述就是小编给大家介绍的《React 17 正式版发布》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

与孩子一起学编程

与孩子一起学编程

[美] 桑德Warren Sande、Carter Sande / 苏金国、姚曜 等 / 人民邮电出版社 / 2010-11 / 65.00元

一本老少咸宜的编程入门奇书!一册在手,你完全可以带着自己的孩子,跟随Sande父子组合在轻松的氛围中熟悉那些编程概念,如内存、循环、输入和输出、数据结构和图形用户界面等。这些知识一点儿也不高深,听起来备感亲切,书中言语幽默风趣而不失真义,让学习过程充满乐趣。细心的作者还配上了孩子们都喜欢的可爱漫画和经过运行测试的程序示例,教你用最易编写和最易理解的Python语言,写出你梦想中的游戏程序。 ......一起来看看 《与孩子一起学编程》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具