React Native 0.68 发布公告
大家好!今天我们宣布发布 React Native 0.68.0 版本,其中选择加入全新的 React Native 架构,修复了错误等等。
章节
0.68 的亮点
Andrei Calazans 帮助我们选择了 0.68 带来的最相关的更改
重大更改和版本升级
此版本带来了一些重大更改
- React Native 已更新至最新的 LTS Node 16。由于我们在 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 的问题,以便更轻松地进行模态框的 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 版本都有一个副本。