跳至主要内容

React Native 0.70 发布公告

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

我们很高兴发布 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 上自动链接库,而无需在 Android.mk 或 CMake 文件中进行任何额外配置。

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

新架构要求我们调整自动链接功能,以支持使用 Codegen 并向应用开发者公开原生代码的库。

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

Android 构建的完整 CMake 支持

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

从现在开始,您可以使用 CMakeLists.txt 文件代替 Android.mk 文件来处理项目中与 Android/Native 相关的所有内容。

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

  • 在您的应用中创建的 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 次提交帮助实现了此版本的发布——感谢大家!我们也感谢所有提供反馈以确保此版本尽可能稳定的人。