跳到主要内容

发布 React Native 0.69

·阅读时长5分钟
Marek Fořt
马雷克·福尔特
Shopify 软件工程师
Nicola Corti
Nicola Corti
Meta 软件工程师

我们很高兴发布 React Native 的新版本 0.69.0。此版本对 React Native 的新架构进行了多项改进并增加了新功能:支持 React 18 和捆绑 Hermes。请继续阅读以了解更多信息!

章节

React 18

我们非常高兴地宣布 React Native 0.69 是第一个支持 React 18 的版本。React 18 带来了 大量改进,例如 `useId` 等新 hook。此外,React 18 还包含 `useTransition` 等新的并发功能以及对 Suspense 的全面支持。

在 React Native 0.69 中,React 18 默认启用。但是,如果您尚未迁移到新架构,您将只能利用不使用并发渲染和并发功能的功能。新架构在设计时就考虑了并发渲染,但我们无法为旧架构添加此支持。

您可以在 这里 了解更多关于 React Native 中 React 18 的支持信息。

捆绑 Hermes

在此版本之前,Hermes 和 React Native 是分开发布的。这导致了 Hermes 版本与 React Native 版本兼容性上的混淆。为解决此问题,从 React Native 0.69 开始,我们将与 React Native 一同发布兼容版本的 Hermes。此更改将使在 React Native 中使用 Hermes 更加稳定。

React Native 会处理 Hermes 的正确版本使用,但请确保遵循 升级助手 中的步骤,以确保集成按预期工作。如果您尚未启用 Hermes,可以 在此处 按照步骤操作。虽然我们将继续支持其他 JavaScript 引擎,但我们建议所有人迁移到 Hermes 以获得最佳体验,并确保我们能够更好地为您提供支持。

请注意,Android 上使用新架构的用户需要 从源码构建 Hermes。对于在 Windows 上构建 Hermes 的用户,还需要另外按照 这些步骤 进行操作。

如果您有兴趣了解更多关于 React Native 如何捆绑 Hermes 的内部工作原理,可以 在此处 查看详细文档。

新架构

我们正在继续为 Android 和 iOS 推出新架构。如果您尚未迁移您的应用程序或库,请按照 此处 的步骤进行操作。您还可以阅读关于新架构的工具和资源的 最新更新 以了解更多信息。

0.69 的亮点

如上所述,本次发布最重要的改进围绕 React 18 支持和捆绑 Hermes。然而,还有其他一些值得注意的变化,包括:

重大变更

此外,还有一些破坏性变更:

  • React Native CLI 已升级到新的主版本 8.0
    • `link` 和 `unlink` 命令已被移除,取而代之的是自动链接。
    • 已移除已弃用的 `initCompat`,请使用 `init` 命令代替。
    • 移除了已弃用的 `run-android` 属性。
    • 移除了 `install` 和 `uninstall` 命令。
    • 从 `react-native.config.js` 中移除了 assets 和 hooks – 您需要从您的配置文件中删除这些属性。
    • `podspecPath` 已从 iOS 依赖项配置中移除。
    • 从 `run-ios` 中移除了 `--project-path` 选项。
    • iOS 源目录检测方式已从查找 Xcode 项目更改为查找 Podfile。
  • 对 `console.disableYellowBox` 的支持 已被移除
  • 已移除先前已弃用的 prop 类型 (cdfddb4dad, 3e229f27bc, 10199b1581)。
  • 自 RN 0.65 起已弃用的 `removeListener` 已从 Appearance 中移除
  • 如果您曾使用 `SegmentedComponentIOS`,现在需要将其替换为第三方库,例如 segmented-control (235f168574)。

升级

我们还升级了一些依赖项:

  • AGP 已升级到 7.1.1 - 我们建议您的应用也保持此版本。
  • `boost` for Android 已更新到 1.76,以与 iOS 对齐
  • Ruby 已升级到 2.7.5
  • Metro 的直接依赖项已升级到 0.70.1

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

致谢

80 位贡献者和他们的 629 次提交促成了此次发布的成功——感谢大家!

我们也感谢测试人员、支持者以及所有提供反馈的人,以确保此次发布尽可能稳定。