喜欢就关注我们吧!
React 17 正式版已经发布,本次版本变更日志如下:
React
为全新的 JSX 转换器添加
react/jsx-runtime
和react/jsx-dev-runtime
。根据原生框架构建组件调用栈。
可以在 context 中设置
displayName
以改善调用栈信息。防止
'use strict'
从 UMD 的 bundles 中泄露。停止使用
fb.me
进行重定向。
React DOM
将事件委托从
document
切换为 root。在运行下一个副作用前,请清理所有副作用。
异步运行
useEffect
清理函数。使用浏览器的
focusin
和focusout
替换onFocus
和onBlur
的底层实现。将所有
Capture
事件都使用浏览器的捕获阶段实现。禁止在
onScroll
事件时冒泡。如果
forwardRef
或memo
组件的返回值为undefined
,则抛出异常。移除事件池。
移除 React Native Web 不需要的内部组件。
当挂载 root 时,附加所有已知的事件监听器。
在 Dev 模式下,禁用第二次渲染过程中的
console
。弃用为记录且具有误导性的
ReactTestUtils.SimulateNative
API。重命名内部使用的私有字段
不在开发环境调用 User Timing API。
在严格模式下重复渲染期间禁用 console。
在严格模式下,二次渲染组件也不使用 Hook。
允许在生命周期函数中调用
ReactDOM.flushSync
(但会发出警告)。将
code
属性添加到键盘事件对象中。为
video
元素添加disableRemotePlayback
属性。为
input
元素添加enterKeyHint
属性。当没有给
提供任何值时,会发出警告。
如果
forwardRef
或memo
组件的返回值为undefined
,则抛出警告。为无效更新改进错误信息。
从调用栈信息中忽略 forwardRef 和 memo。
在受控输入与非受控输入间切换时,改善错误消息。
保持
onTouchStart
、onTouchMove
和onWheel
默认为 passive。修复在 development 模式下 iframe 关闭时,
setState
挂起的问题。使用
defaultProps
修复拉架子组件在渲染时的问题。修复当
dangerouslySetInnerHTML
为undefined
时,误报警告的问题。使用非标准的
require
实现来修复 Test Utils。修复
onBeforeInput
报告错误的event.type
。修复 Firefox 中
event.relatedTarget
输出为undefined
的问题。修复 IE11 中 "unspecified error" 的问题。
修复 shadow root 中的渲染问题。
使用事件捕获修复
movementX/Y
polyfill 的问题。使用委托处理
onSubmit
和onReset
事件。提高内存使用率。
React DOM Server
使用服务端渲染的
useCallback
与useMemo
一致。修复函数组件抛出异常时状态泄露的问题。
React Test Renderer
改善
findByType
错误信息。
Concurrent Mode(实验阶段)
改进启发式更新算法。
在实现性 API 前添加
unstable_
前缀。移除
unstable_discreteUpdates
和unstable_flushDiscreteUpdates
。移除了
timeoutMs
参数。禁用
预渲染,以支持未来的 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
,会发出警告。
▼ 往期精彩回顾 ▼
2020 年度 OSC 中国开源项目评选开始啦!
Ubuntu 20.10 正式发布:新特性亮点汇总
开发者图鉴丨故事,要从一场失恋说起……
WordPress 已过时?创始人与新架构拥护者开战
微软不会将 Windows 迁移到 Linux?
觉得不错,请点个在看呀