React v16.7 正式版发布,但没有 Hooks

avatar
花呗借呗前端团队 @蚂蚁集团

原文作者:Andrew Clark

译者:UC 国际研发 Jothy


写在最前:欢迎你来到“UC国际技术”公众号,我们将为大家提供与客户端、服务端、算法、测试、数据、前端等相关的高质量技术文章,不限于原创与翻译。


我们的最新版本包含了 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 提出)


英文原文:

https://reactjs.org/blog/2018/12/19/react-v-16-7.html


好文推荐:

React 16.x 路线图公布,包括服务器渲染的 Suspense 组件及Hooks等

《计算机编程艺术》作者高德纳



“UC国际技术”致力于与你共享高质量的技术文章

欢迎关注我们的公众号、将文章分享给你的好友