原文作者:Andrew Clark
译者:UC 国际研发 Jothy
我们的最新版本包含了 React.lazy 的重要性能修复。 虽然没有更改任何 API,但我们仍将其作为次要版本(Minor)而不是补丁(Patch)发布。
为什么 Bugfix 是次要版本而非补丁版本?
React 遵循语义版本控制。也就是说,我们通常对 bugfix 使用补丁版本,对新功能(非破坏性)使用次要版本。但是,我们也会保留发布次要版本的选择,即使它们不包含新功能。这么做是为了给那些报错可能性很小的变化保留补丁。补丁是最重要的版本,它们可能会包含关键的 bugfix,这也意味着补丁版本更加可靠性些。我们不允许补丁引入附加错误,因为如果大家连补丁都不信任,会影响我们修复关键 bug - 例如安全漏洞的能力。
我们从未打算发布 bug。 React 的稳定性口碑来之不易,我们会继续保持。每一次发布 React 之前,我们都会对它的每个版本进行彻底的测试,包括单元测试、生成式(模糊)测试、集成测试以及数万个组件的内部(dogfooding)测试。但是我们也难免会犯错误。这也是我们制定新策略的原因。未来,如果一个版本包含有意义的变化,即使整体功能没有变化,我们也将发布新的次要版本(bump minor version)。当 unstable_-prefixed API 改变时,我们也会发布新的次要版本。
可以使用 Hooks 了吗?
还没呢,但很快了!
在 React Conf 上,我们宣布 16.7 将是第一个包含 Hooks 的版本。 这是我们的失误。 我们不应该为未发布的功能标明特定的版本号,并且之后会避免这种情况。
虽然 16.7 不支持 Hooks,但请不要擅自推断 Hooks 发布的时间表。 我们对 Hooks 的计划没有改变:
Hooks 提案被接受(根据反馈进行了微小的计划变更)。
该实现已合并到 React repo 中(以 feature 标志)。
我们目前正处于测试阶段,预计几个月内公开发布。
听说很多人想在他们的 App 中使用 Hooks,其实我们都迫不及待想发布呢! 但是因为 Hooks 改变了我们编写 React 组件的方式,所以我们花了更多的时间来确保细节的正确。 我们为使这个激动人心的新功能广泛使用而用心准备,感谢您的耐心等待。
可以在我们之前的帖子中详细了解到发布路线图,可以直接访问下面链接了解详情:
React 16.x 路线图公布,包括服务器渲染的 Suspense 组件及Hooks等
安装
React v16.7.0 已发布到 npm。
使用 Yarn 安装 React 16,请运行:
使用 NPM 安装 React 16,请运行:
我们还通过 CDN 提供了 React 的 UMD 版本:
详细的安装说明请参阅文档。
文档地址:https://reactjs.org/docs/installation.html
更新日志
React DOM
- 修复 React.lazy 大量懒加载组件产生的性能问题。(#14429,@acdlite 提出)
- unmount 时清空字段以避免内存泄漏。(#14276,@trueadm 提出)
- 修复混用 react-dom/server@16.6 及 React@<16.6 时产生的 SSR 和上下文的错误。(#14291,@gaearon 提出)
- 修复分析模式的性能倒退问题。(#14383,@bvaughn 提出)
Scheduler (Experimental)
- 发布消息到 MessageChannel 而不是 window。(#14234,@acdlite 提出)
- 减少序列化开销。(#14249,@developit 提出)
- 修复测试环境中 setTimeout 的回退问题。(#14358,@bvaughn 提出)
- 添加调试方法。(#14053,@mrkev 提出)
英文原文: