跳到主要内容

宣布 React Native 0.70 发布

· 阅读需 6 分钟
Dmytro Rykun
Dmytro Rykun
Software Engineer @ Meta
Thibault Malbranche
Thibault Malbranche
Lead Mobile Engineer @ Brigad
Nicola Corti
Nicola Corti
Software Engineer @ Meta
Lorenzo Sciandra
Lorenzo Sciandra
Senior Software Engineer @ 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++ 代码,但你仍需要一个原生编译的入口。

从此,你可以用 CMakeLists.txt 文件替代项目中与 Android/原生相关的 Android.mk 文件。

此改动对新架构的应用和库用户均有益:

  • 应用创建的 CMake 文件更简洁(3 行代码 对比 50 多行的 Android.mk 文件)。这为未来升级 React Native 版本提供了更轻松的体验,减少了你的维护负担。
  • Codegen 现同时生成 Android.mkCMakeLists.txt,因此使用我们为新架构库默认提供设置的库,无需担心额外操作。
  • 上述自动链接将开箱即用支持 CMake 和 Android.mk 文件。
  • 尽管应用开发者可自由选择 Android.mk 或 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 次变更,助力本次发布——感谢大家!我们也感谢其他所有提供反馈的人,确保本版本尽可能稳定。