跳到主要内容

发布 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 带来了许多改进,例如新的 Hook,如 useId。此外,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 更加稳定。

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

请注意,Android 上新架构的用户需要**从源代码构建 Hermes**。对于从源代码构建 Hermes,Windows 用户还需要遵循这些步骤

如果您有兴趣了解 React Native 捆绑 Hermes 在底层是如何工作的,您可以在此处查看深入的文档。

新架构

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

0.69 的亮点

如上所述,此版本中最重要的改进集中在 React 18 支持和捆绑 Hermes。但是,还有其他值得注意的更改,包括

  • 弃用对 iOS/tvOS SDK 11.0 的支持,现在需要版本 12.4+
  • 对开发 Android 的 M1 用户更好的支持
  • 添加了新的 .xcode.env 配置文件,用于更确定地获取 node 可执行文件
  • React Native 现在使用 Android 11 的最新状态栏 API
  • 支持 C++17
  • iOS 调试菜单中新增了 hotkeysEnabled 选项

重大更改

也有一些重大变更

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

升级

我们升级了一些依赖项

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

致谢

80 位贡献者通过 629 次提交帮助实现了此版本的发布——感谢大家!

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