React Native 0.70 发布,Hermes 成为默认引擎


React Native 0.70 版本正式发布,这个版本有几项改进,比如 Codegen 的新的统一配置、Hermes 作为默认引擎、对 Android 构建的完整 CMake 支持,还有对新架构文档的更新。

具体更新内容如下:

New Architecture 的新文档

在过去的几个月里,Meta 一直在努力为文档中的 New Architecture 部分增加更多的内容。在新的部分,你可以找到迁移指南、例子和教程,让你尽快掌握。

同时你还可以找到新的文档,深入了解为什么要有一个 New Architecture 和它的各个部分。这能帮助你更好地理解新 API 背后的原理。

Hermes 作为默认引擎

React Native 0.70 是第一个默认启用 Hermes 的版本。

这是 Hermes 团队和 React Native 团队合作的结果,Meta 将努力改进和微调 Hermes,使其性能更强,并提供社区高度要求的功能。

Codegen 的新的统一配置

在 0.70 版本中,引入了一个统一的方式来定义 iOS 和 Android 的 Codegen 规格。以前你必须把 Android 的配置放在一个单独的 build.gradle 文件中。

现在,你可以直接在 package.json 中定义它:

"codegenConfig": {
"name": "CustomAnimationView",
"type": "components",
"jsSrcsDir": "./src",
"android": {
"javaPackageName": "com.custom.animation"
}
}

这一改进为库维护者在将其代码库迁移到 New Architecture 时提供了更一致的体验。

New Architecture 库的 Android Autolinking

在 0.70 版本中,New Architecture 的用户能够自动链接库,而不需要在他们的 Android.mk 或 CMake 文件上做任何额外的配置。

自动链接(Autolinking)React Native 开发体验的一个重要部分。它允许你用 yarn add 命令包含外部库,而无需处理 CocoaPods 或 Gradle 设置。

虽然自动链接功能在 iOS 上的 New Architecture 库运行良好,但在 Android 上却并非如此。在 0.70 版本中缩小了这一差距,现在你可以继续在你的项目中加入带有 yarn add 的库:它们会在任何架构上被正确链接。

对 Android 构建的全面 CMake 支持

从 0.70 开始,用户现在可以使用 CMake 来配置他们的 Native 构建了。虽然不希望应用程序的用户直接编写 C++ 代码,但你仍然需要一个本地编译的入口。

从现在开始,你可以使用 CMakeLists.txt 文件而不是 Android.mk 文件来处理你项目中任何与 Android/Native 相关的东西。

依赖升级

  • 将 RN CLI 升级到 9.0.0 版本
  • 将 Android Gradle Plugin 升级到 7.2.1
  • 将 Gradle 升级到 7.5.1
  • 将 RCT-Folly 升级到 2021-07-22
  • 将 Metro 升级到 0.72
  • 将 SoLoader 升级到 0.10.4

更多详情可查看:https://reactnative.dev/blog/2022/09/05/version-070


相關推薦

2022-12-13

@evernoteHW、@soulhat、@xueshuai、@LuMeiling 四、RN​ 1. React Native 0.70 版本支持​ React Native 0.70 版本已于 2022-9-5 正式发布。在 0.70 版本中 Hermes 已成为默认的 JS 引擎,我们将与 RN 默认配置保持一致,如不需要可自行关闭。Hermes 也

2022-06-24

React Native 0.69 已发布。此版本对新架构和新特性进行了多项改进,其中包括支持 React 18,以及与 Hermes 绑定发布。 React 18 React Native 0.69 是第一个支持 React 18 的版本。React 18 带来了许多改进,比如新 hookuseId,以及新的并发特

2023-03-10

React Native 0.71.4 现已发布,具体更新内容如下: Changed 使 FlatList 允许 ArrayLike 数据(c03de97fb4) 将 RNGP 提升至^0.71.16(3df4a79c3d) 将 CLI 更新到 10.2.0,将 Metro 更新到 0.73.8(20a6fbd373)- 包含: 修复:使用 Terser minification 时

2023-02-03

@crazyonebyone、@evernoteHW、@soulhat、@xueshuai、@LuMeiling 2. React Native 能力​ 为了让整体开发体验跟 RN 更加一致,减少开发者的理解成本。我们对 @tarojs/rn-runner 的代码进行了重构。将 Taro RN 需要的所有编译逻辑,都封装到了 metro 配置

2022-09-18

React Native 0.70.1 现已发布,具体更新内容如下: Added 为 HermesExecutorFactory 添加更多调试设置 为 turbo 模块支持 TypeScript 数组类型(仅限组件) Changed 接受 TypeScript 类型T | null | undefined作为 turbo 模块中 T 的可能类型 将 re

2022-07-23

React Native 0.69.2 现已发布,具体更新内容如下: Changed 为 react v18 compat 设置 react-shallow-renderer v16.15.0 (a39a7c453d) 将 RN CLI 升级到 v8.0.3(28cbd21d21) iOS specific Hermes pod:更改逻辑以使用 hermes 标签正确设置 pod 源(46a9edc854

2024-02-29

React Native 0.73.5 现已发布,具体更新内容如下: Security 将 CLI 更新到 12.3.6(ffcd8f5249) Changed Hermes bump ( 3bdd54a51c) Fixed 修复:修复 codegen 无法找到所有第三方库的问题 (67e2bb455f) 修复传递给库的 compiler flag

2023-08-16

React Native 0.72.4 现已发布,具体更新内容如下: Added Android specific 在 android API 33+ 上有 inverted  FlatList 时修复 ANR 的 Native part(6d206a3f54) 针对 SDK 34 - 在 DevSupportManagerBase 中添加了 RECEIVER_EXPORTED/RECEIVER_NOT_EXPORTED 标

2023-02-03

React Native 0.71.2 现已发布,具体更新内容如下: Added 在 Alert.prompt 的类型定义中添加了 AlertOptions 参数,使其与 js 代码保持一致(305ca337c0) 添加了缺失的accessibilityLabelledByTypeScript 类型(e162b07982) 添加了缺失的accessibilityL

2022-06-30

React Native 0.69.1 现已发布,具体更新内容如下: 变更 针对 iOS  公开所有 Yoga 标题并添加 #ifdef __cplusplus  (43f831b23c) Fixed 对 performance.now() 使用单调时钟 (114d31feee) 针对 iOS 修复 React-RCTText 的构建( (4ea38e16bf by @

2023-04-21

React Native 0.71.7 现已发布,此版本主要旨在解决在三星设备上使用多行 TextInput 的 ANR 问题(#35936、#35590)。 具体更新内容如下: Fixed iOS specific 解决 Hermes 性能退步问题(9be2959) Android specific 解决了文本组件在 new arc

2024-01-31

React Native 0.73.3 现已发布,具体更新内容如下: Added iOS specific 查找 codegen 声明时处理 TSAsExpression (02957718d7) Changed 将 CLI 升级到 12.3.2(bcb229e8f8) Android specific 在 ReactActivity 的 onRequestPermissionsResult() 中调用 super.onRequ

2023-01-21

React Native 0.71.1 现已发布,具体更新内容如下: Added Android specific 添加jsinspector到 prefab target(a80cf96fc8) iOS specific 将initialProps属性添加到RCTAppDelegate(b314e6f147) Changed 将 CLI 升级到 10.1.3(b868970037) 将 RNGP 提高到

2023-07-01

React Native 0.72.1 现已发布,具体更新内容如下: Added iOS specific 添加警告以帮助用户从互操作层迁移。(a702d0515f) 允许在互操作层中查找不带 RCT 前缀的 ViewManager(a28881a3d7 ) Changed react-native/metro-config现在包括