跳到主要内容

发布 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 插件升级到 7.2.1
  • 将 Gradle 升级到 7.5.1
  • 将 RCT-Folly 升级到 2021-07-22
  • 将 Metro 升级到 0.72
  • 将 SoLoader 升级到 0.10.4

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

致谢

88 位贡献者提交了 493 次提交,使此版本得以发布——感谢大家!我们还要感谢所有提供反馈意见的人,以确保此版本尽可能稳定。