跳至主内容

React Native 0.70 正式发布

· 1 分钟阅读
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
非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

我们非常高兴地发布 React Native 新版本 0.70.0。此版本包含多项重要改进:Codegen 的统一配置、默认启用的 Hermes 引擎、Android 构建的完整 CMake 支持,以及新架构文档的全面更新。欢迎阅读了解更多详情!

目录

新架构文档更新

过去几个月,我们持续完善了文档中新架构部分的内容。在这个新版块中,您可以找到迁移指南、示例代码和教程,助您快速上手。

同时,我们还新增了关于为何需要新架构架构核心组成的深度解析文档。希望这些内容能帮助您更好地理解新 API 的设计理念。

欢迎在 react-native-website 代码库中提出宝贵意见。

默认启用 Hermes 引擎

React Native 0.70 是首个默认启用 Hermes(我们自研的 JavaScript 引擎)的版本。

这是 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 文件即可实现库的自动链接。

自动链接(Autolinking)是 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(因其拥有更完善的文档、工具链和生态系统)。

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 次提交共同促成了此次发布——感谢大家!同时感谢所有提供反馈以确保此版本尽可能稳定的朋友们。