跳至主要内容

宣布 React Native 0.70

·阅读时长 6 分钟
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 是第一个默认启用我们内部 JS 引擎 Hermes 的版本。

这是 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/原生相关的一切使用 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 次提交,帮助实现了此次发布——感谢大家!我们也感谢所有提供反馈以确保此次发布尽可能稳定的人。