跳到主要内容

React Native 0.70 版本发布

·5 分钟阅读
Dmytro Rykun
Dmytro Rykun
Meta 软件工程师
Thibault Malbranche
Thibault Malbranche
Brigad 首席移动工程师
Nicola Corti
Nicola Corti
Meta 软件工程师
Lorenzo Sciandra
Lorenzo Sciandra
Microsoft 高级软件工程师

我们很高兴发布 React Native 的新版本 0.70.0。此版本带来了一些改进,例如 Codegen 的新统一配置、默认引擎 Hermes、对 Android 构建的完整 CMake 支持以及对新架构文档的更新。请继续阅读以了解更多信息!

章节

新架构的新文档

在过去的几个月中,我们一直致力于向文档的新架构部分添加更多内容。在新部分中,您可以找到迁移指南、示例和教程,以帮助您快速入门。

与此同时,您还可以找到深入探讨为何采用新架构其各个部分的新文档。我们希望这有助于您更好地理解新 API 背后的原理。

欢迎任何反馈,请在react-native-website存储库中告知我们。

Hermes 作为默认引擎

React Native 0.70 是第一个默认启用 Hermes(我们内部的 JS 引擎)的版本。

这是 Hermes 团队和 React Native 团队共同努力的结果,以及社区的宝贵贡献。我们致力于改进和微调 Hermes,使其性能更高,并交付社区高度要求的功能。

您可以在官方发布博文中阅读更多相关信息。

Codegen 的新统一配置

在 0.70 版本中,我们引入了一种统一的方式来定义 iOS 和 Android 的 Codegen 规范。以前,您必须将 Android 配置放在单独的build.gradle文件中。

现在,您可以直接在 package.json 中定义它,如下所示:

  "codegenConfig": {
"name": "CustomAnimationView",
"type": "components",
"jsSrcsDir": "./src",
"android": {
"javaPackageName": "com.custom.animation"
}
}

此改进为库维护人员将其代码库迁移到新架构提供了更一致的体验。

如果您是库维护人员,请务必在此讨论中告知我们您的流程进展情况,该讨论位于React Native 新架构工作组中。

新架构库的 Android 自动链接

在 0.70 版本中,新架构的用户能够自动链接库,而无需在其 Android.mk 或 CMake 文件上进行任何额外配置。

自动链接是 React Native 开发体验的关键部分。它允许您使用yarn add命令包含外部库,而无需处理 CocoaPods 或 Gradle 设置。

新架构要求我们调整自动链接功能,以支持使用 Codegen 并向应用程序开发人员公开本机代码的库。

虽然自动链接在新架构库在 iOS 上运行良好,但在 Android 上情况并非如此。在 0.70 版本中,我们弥合了这一差距,您现在可以继续使用yarn add将库包含到您的项目中:它们将在任何架构上正确链接。

Android 构建的完整 CMake 支持

从 0.70 版本开始,用户现在可以使用 CMake 来配置其本机构建。虽然我们不希望应用程序用户直接编写 C++ 代码,但您仍然需要本机编译的入口点。

从现在开始,对于项目中任何与 Android/Native 相关的内容,您可以使用CMakeLists.txt文件而不是Android.mk文件。

此更改使新架构上的应用程序和库用户都受益,因为

  • 在您的应用程序中创建的 CMake 文件要小得多(3 行代码,而 Android.mk 文件为 50 多行)。这使得未来 React Native 版本之间的更新体验更容易,并减少了您需要维护的代码。
  • Codegen 现在同时生成Android.mkCMakeLists.txt,因此如果库使用我们为新架构库提供的默认设置,则无需担心执行任何操作。
  • 上面提到的自动链接将与 CMake 和 Android.mk 文件一起开箱即用。
  • 尽管应用程序可以自由使用Android.mk或 CMake 文件,但未来的推荐解决方案将是 CMake 文件(因为 CMake 周围有更好的文档、工具和生态系统)。

0.70 版本亮点

如上所述,此版本中一些更重要的改进围绕新架构体验展开。但是,还有其他值得注意的更改,包括

重大更改

还有一些重大更改

另请注意,Metro 的版本已升级到 0.72,其中包含5 项重大更改

升级

我们还升级了一些依赖项

  • 将 RN CLI 升级到 v9.0.0
  • 将 Android Gradle Plugin 升级到 7.2.1
  • 将 Gradle 升级到 7.5.1
  • 将 RCT-Folly 升级到 2021-07-22
  • 将 Metro 升级到 0.72
  • 将 SoLoader 升级到 0.10.4

您可以在变更日志中查看完整的更改列表。

致谢

88 位贡献者通过他们的 493 次提交帮助实现了此版本的发布 - 感谢大家!我们还要感谢所有提供反馈以确保此版本尽可能稳定的人。