发布 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
等新的 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。对于从源代码构建 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
- 新的
hotkeysEnabled
选项位于 iOS 调试菜单中
重大更改
也有一些重大更改
- React Native CLI 已升级到新的主要版本8.0
link
和unlink
命令已被删除,取而代之的是自动链接- 已弃用的
initCompat
已被删除,请改用init
命令 - 删除了已弃用的
run-android
属性 - 删除了
install
和uninstall
命令 - 从
react-native.config.js
中删除了资产和 Hook - 您需要从您的配置中删除这些属性 podspecPath
已从 iOS 依赖项配置中删除- 从
run-ios
中删除了--project-path
选项 - iOS 源目录检测已从查找 Xcode 项目更改为查找 Podfile
- 对
console.disableYellowBox
的支持已删除 - 已删除之前已弃用的 PropTypes (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 次提交帮助实现了此版本的发布 - 感谢大家!
我们还要感谢发布测试人员、支持者以及所有提供反馈的人,他们确保此版本尽可能稳定。