龙空技术网

React Native 0.72 版本问世:这次都有哪些重要的更新?

CipherY 181

前言:

现在兄弟们对“js 更新”大概比较注重,大家都需要知道一些“js 更新”的相关内容。那么小编也在网络上收集了一些有关“js 更新””的相关资讯,希望兄弟们能喜欢,朋友们快快来学习一下吧!

经过漫长的等待,React Native 0.72 终于来了!它带来了许多要求很高的功能、性能和开发人员体验的改进以及其他一些重要的变化。

从 这里 看到本次升级的总览:

在这篇文章中,我们将了解 React Native 0.72 中的新增功能,以及最重要的是,为什么这些新功能对 React Native 开发人员很重要。

Metro 新功能

众所周知,Metro 是 React Native 默认的 JS 打包模块,React Native 0.72 版本引入了 Metro 中的几个重要功能。

支持 symlinks

此版本的一个很重要的亮点是增加了对 Metro 中 symlinks 的 beta 版本支持,这也是社区一直长期要求的功能之一。

简单来讲,该功能允许 Metro 去追踪 symlinks,从而支持各种以前不受支持的项目结构和工具。这一变化让 React Native 与 monorepo 设置和 pnpm 无缝协作,消除了对复杂解决方法或第三方工具的需求。

支持 Package Exports

同样,Metro 中添加了对 包导出 的支持,为 package.json 中的 main 字段提供了替代方案。

借助包导出支持,库的作者现在可以明确定义用户应该可以访问其包的哪些部分,从而提供更好的封装并减少潜在的命名冲突。此增强功能简化了将外部库集成到 React Native 项目中的过程,并促进更好的代码组织。

启用新功能

如果想要启用上述两个新功能,只需要在 metro.config.js 文件里更新这两个配置即可:

js复制代码const config = { // … resolver: {   unstable_enableSymlinks: true,   unstable_enablePackageExports: true, },};
改进开发过程中的错误处理与上报

相信各位 React Native 开发者经常在开发过程中遇到下面这个 RedBox 页面:

这个确实是开发过程中一直以来的痛点之一,React Native 在 0.72 版本对此也进行了一些优化。

无效样式不再通过 RedBox 提示

在 React Native 0.72 中,开发过程中无效样式不再以 Redbox 的形式展示。

相反,警告会记录到控制台,使开发人员更容易识别和修复样式错误,而不会影响用户体验。此更改提高了 React Native 应用程序的整体可用性,并提供了更流畅的开发工作流程。

优化 Hermes 引擎对引用未定义函数的错误提示

Hermes 引擎改进了尝试调用未定义函数的错误消息,现在是直接 显示被调用的变量名称。

这听起来可能很小,但相比之前的 undefined is not a function 提示相比,这可以说是一个很大的改进了。此外,堆栈跟踪现在会过滤掉内部字节代码帧,从而提供更具可读性的调用堆栈。

最后,React Native CLI 本身也在此版本中进行了更新,通过减少重复、澄清措辞、减少详细的堆栈跟踪以及添加某些命令的相关文档的深层链接来增强错误输出。

新架构及其性能改进

之前我也写过一篇关于 React Native 新架构 的介绍文章。

如果您有一直关注 React Native 的更新,您就会知道每个新版本都会对 新架构 进行一些优化和改进,React Native 0.72 也不例外。

Fabric 渲染性能提升

新的 Fabric 渲染引擎得到了提升:

文本渲染性能在 iOS 上提高了 27%,在 Android 上提高了 18%。

有关 Fabric 性能改进的更多详细信息,可以参考这篇文章

Hermes 引擎性能提升

新架构的 JavaScript 引擎 Hermes 也做了许多性能改进:

大型 object 的编译速度更快了对 JSON parse 进行了多项优化

这些改进将特别有利于您的应用进行大量 JSON 操作或者打包大量的对象。

最后,对于 iOS,新架构现在与常用的 use_frameworks 兼容! CocoaPod 配置——这对于许多应用程序集成先前版本的新架构来说是一个障碍。

新架构工作组

从 React Native 0.72 开始,为了更集中和更频繁的更新,新架构更新将由专门的工作组管理。

如果您对新架构更新感兴趣,请务必关注工作组。

Breaking Changes 以及弃用的组件

React Native 0.72 有很多改进,这其中也包括一些默认包和功能的 breaking changes。如果您正打算升级到 0.72,请务必查看这些更改并相应地更新您的依赖项!

主要变化是 Slider、DatePickerIOS 和 ProgressViewIOS 等一些组件已从 React Native 核心中删除,并已提取到社区包中。如果您正在使用这些组件,只需找到并安装推荐的社区包即可。

此外,几个包已被重命名,现在位于 react-native/packages 下,并在 @react-native npm范围下发布。 这些更改不会影响不直接依赖于重命名的包的开发人员。

但是,在升级到 React Native 0.72 时,开发人员应将任何重命名的依赖项更新为其 ~0.72 版本。

写在最后

如果您是一名长期的 React Native 开发者,您应该就会知道性能不佳一直是 React Native 一个最受开发者诟病的问题。

不过可以看到的是,在过去的几个版本中,特别是随着新架构的引入,React Native 团队已经在花心思的重点解决性能问题,并已经取得了一些显著的成效。

React Native 还没 “死”,而且我相信它会越来越好。

作者:龙飞_longfe

链接:

来源:稀土掘金

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签: #js 更新