发布 React Native 0.69
我们很高兴发布 React Native 的新版本 0.69.0。此版本包含 React Native 新架构的几项改进和新功能:支持 React 18 和捆绑 Hermes。请继续阅读以了解更多信息!
章节
React 18
我们很高兴地与您分享,React Native 0.69 是第一个支持 React 18 的版本。React 18 带来了许多改进,例如 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 更加稳定。
React Native 会处理 Hermes 的正确版本,但是,请务必按照升级助手中的步骤进行操作,以确保集成按预期工作。如果您尚未启用 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
link
和unlink
命令已移除,以支持自动链接- 已移除弃用的
initCompat
,请改用init
命令 - 移除已弃用的
run-android
属性 - 移除
install
和uninstall
命令 - 从
react-native.config.js
中移除了资产和钩子——您需要从配置中删除这些属性 podspecPath
已从 iOS 依赖配置中移除- 从
run-ios
中移除了--project-path
选项 - 将 iOS 源目录检测从查找 Xcode 项目更改为查找 Podfile
- 对
console.disableYellowBox
的支持已取消 - 已移除已弃用的 prop types(cdfddb4dad、3e229f27bc、10199b1581)
removeListener
,自 RN 0.65 起已弃用,已从 Appearance 中移除- 如果您使用
SegmentedComponentIOS
,您现在需要将其替换为第三方库,例如 segmented-control (235f168574)
升级
我们升级了一些依赖项
- AGP 升级到 7.1.1 - 我们建议您的应用坚持使用此版本
- Android 的
boost
已更新到 1.76,以与 iOS 对齐 - Ruby 已升级到 2.7.5
- 直接的 metro 依赖项已升级到 0.70.1
您可以在更新日志中查看完整的更改列表。
致谢
80 位贡献者及其 629 次提交使得此版本得以发布——感谢大家!
我们还要感谢发布测试人员、支持者以及所有提供反馈以确保此版本尽可能稳定的人。