React Native 0.68 版本发布公告
大家好!今天我们发布 React Native 0.68.0 版本,该版本可以选择启用新的 React Native 架构、修复错误以及更多功能。
章节
0.68 版本亮点
Andrei Calazans 帮助我们选择了 0.68 版本中最相关的变更
重大变更和版本升级
此版本带来了一些重大变更
- React Native 已更新到 Node 16,最新的 LTS 版本。由于我们在 CI 上测试 LTS 和之前的 LTS 版本,因此此更改意味着用户现在需要使用 Node >= 14 的版本。
- Android Gradle 插件已更新至 7.0.1,强制 Android 构建使用 JDK 11,因此请确保升级您的配置(我们建议您对 Intel 和 M1 Mac 都使用
zulu11
JDK 版本) - 从 iOS 上的
RCTBundleURLProvider
API 中移除了fallbackResource
。可以安全地从方法调用中删除此参数,而无需替换。
工具也已更新 - 以下是主要的版本升级
- @react-native-community/cli 至 7.0.3
- Metro 至 0.67
- react-devtools-core 依赖项至 4.23.0
- Flipper 至 0.125.0
- react-native-codegen 至 0.0.9
- Kotlin 至 1.6.10
- Soloader 至 0.10.3
- Gradle 至 7.3
- Android compile 和 target SDK 至 31
此外,感谢 Nicola Corti 的 此提交,Android Gradle 插件将自行下载默认版本的 NDK,因此您无需再单独指定和安装它。
其他改进
此版本中还有许多其他更改和修复,但以下是一些您可能感兴趣的选择
- Gijs Weterings 修复了将 testID 转发到 RCTModalHostView,以便更轻松地进行 Modals 的 E2E 定位。
- Liam Jones 修复了一个问题,即调用
console.error
会导致 RedBox 和 LogBox 同时出现。 - Sam Kline 修复了 Android 上开发模式下 BundleDownloader 失败后出现空白屏幕的问题。
- Jeffrey Hyer 修复了一个问题,即 KeyboardAvoidingView 在使用
onLayout
属性时无法按预期工作。
如果您对完整的更改列表感兴趣,可以在此链接的更新日志中阅读。
致谢
此版本包含 68 位贡献者的 614 次提交!感谢大家!
我们还要感谢发布测试人员和支持者,他们帮助我们在稳定的 0.68.0 版本发布之前发现了回归问题:你们对此版本的成功至关重要!
如果您、您的应用或您的公司有兴趣加入“发布测试人员”计划,您可以在此处注册。
选择启用新架构
如上所述,React Native 0.68 是第一个选择性支持 Fabric Renderer 和 TurboModule 系统的版本。这标志着新 React Native 架构推广的关键里程碑。为了帮助您快速了解这些更改,我们在网站上添加了架构部分,您可以在其中找到有关新系统内部机制的几个深入指南。
与此同时,我们在文档中添加了迁移指南,并启动了一个专门针对新架构的工作组。您可以在之前的博客文章中找到更多信息,包括如何选择启用。
请注意,新架构仍需要一些微调。您依赖的一些第三方库可能尚未迁移,并且您可能会遇到我们尚未发现的问题。如果您遇到问题,请将其报告给我们的新架构工作组。
关于 React 18: React Native 0.68 不支持 React 18 的新渲染引擎,这将在未来的版本中实现。这是因为 React 18 依赖于新架构才能从React 18 发布公告博客文章中介绍的新功能中受益。有关更多信息,请参阅此处的 React Conf 主题演讲。
网站更新
除了主代码库的改进之外,在 Simek、Megatron4537 和 slorber 的帮助下,网站上也进行了一些改进!特别是,您现在可以通过顶部工具栏中的新部分了解如何为 React Native 做出贡献。此外,“贡献”部分和新的“架构”部分现在是未版本化的 — 现在这些部分只有一个副本,而不是每个 React Native 版本都有一个副本。