跳到主要内容

发布 React Native 0.70

·6 分钟阅读
Dmytro Rykun
Dmytro Rykun
Meta 软件工程师
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 是第一个默认启用我们内部 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++ 代码,但您仍然需要原生编译的入口点。

从现在开始,您可以在项目中将 CMakeLists.txt 文件替换 Android.mk 文件,用于所有与 Android/原生相关的内容。

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

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