发布 React Native 0.65
·3 分钟阅读
今天我们发布了 React Native 0.65 版本,其中包含新版 Hermes、辅助功能改进、包升级等。
Hermes 0.8 有什么新功能?
Hermes,Facebook 开源的、为 React Native 优化的 JavaScript VM,已升级到 0.8.1 版本。此版本的一些突出功能包括:
- 一个新的并发垃圾回收器,名为“Hades”,可将 64 位设备的暂停时间缩短多达 30 倍。在 Facebook,我们看到它将一些 CPU 密集型工作负载的性能提高了 20%-50%。您可以在此处了解更多关于 Hades 的信息。
- ECMAScript 国际化 API (ECMA-402, 或
Intl
) 现在已内置到 Android 上的 Hermes 中并默认启用,每个 API 的大小开销仅为 57-62K(相比于 JSC 的 6MiB)。通过此更改,Hermes 用户不再需要区域设置填充。非常感谢 @mganandraj 和微软的其他合作伙伴推动了此功能的实现! - Hermes on iOS 现在支持 Apple M1 Mac 和 Mac Catalyst!
- 内存改进,包括 SMI(小整数)和指针压缩,将 JS 堆内存缩小了 30%。
- 对
Function.prototype.toString
的更改,修复了由于不当的特性检测导致的性能下降,并支持源代码注入用例。
你可以在这里找到完整的 Hermes 变更日志。
按照这里的步骤,如果你的应用还没有启用 Hermes,请启用它以利用这些新功能和提升!
辅助功能修复和添加
去年Facebook 签署了 GAAD 承诺,以改善 React Native 的可访问性。0.65 版本分享了这项承诺和其他可访问性成果!一些显著的更改包括:
- 允许为 iOS 指定高对比度明暗值。更多详细信息请参阅文档。
- 在 Android 上添加了
getRecommendedTimeoutMillis
API。这公开了用户在 Android 可访问性选项中设置的首选默认超时值,适用于可能需要额外时间来查看或操作控件等的用户。 - 常规修复,以确保 TalkBack/VoiceOver 正确播报组件上的 UI 状态,例如
disabled
和unselected
。
你可以在这里关注或贡献我们的未解决的辅助功能问题!
重要的依赖版本更新和注意事项
- 现在需要将
react-native-codegen
版本0.0.7
作为package.json
中的devDependency
。 - JCenter 已停止服务并变为只读。我们已将 JCenter 作为 Maven 仓库移除,并更新了依赖项以使用 MavenCentral 和 Jitpack。
- 将 OkHttp 从 v3 升级到 v4.9.1。有关更改的更多详细信息,请参阅升级到 OkHttp 4。
- 升级到 Flipper 0.93 以支持 Xcode 12.5。请参阅此处 Flipper 的更新日志。
- 支持 Android Gradle 插件 7
- Apple Silicon 需要链接器变通方法。请参阅@mikehardy 的说明。
感谢!
此版本包含来自 61 位贡献者的超过 1100 次提交。感谢所有为本次发布做出贡献和支持的人!您可以在此处找到完整的更改日志。