宣布 React Native 0.65
·3 分钟阅读
今天,我们发布了 React Native 0.65 版本,它带来了新版 Hermes、无障碍功能改进、包升级等更多内容。
Hermes 0.8 有哪些新功能?
Hermes,Facebook 为 React Native 优化的开源 JavaScript 虚拟机,已升级到 0.8.1 版本。此版本中的一些突出功能包括:
- 一个名为“Hades”的新并发垃圾收集器,可将 64 位设备上的暂停时间缩短多达 30 倍。在 Facebook,我们看到它将一些 CPU 密集型工作负载的性能提高了 20%-50%。您可以在此处了解有关 Hades 的更多信息。
- ECMAScript Internationalization API (ECMA-402,或
Intl
) 现已内置到 Android 上的 Hermes 中并默认启用,每个 API 的大小开销仅为 57-62K(相比 JSC 的 6MiB)。通过此更改,Hermes 用户不再需要 locale polyfill。非常感谢 @mganandraj 以及微软的其他合作伙伴推动了此项实现! - iOS 上的 Hermes 现在支持 Apple M1 Mac 和 Mac Catalyst!
- 内存改进包括 SMI (Small Integers) 和指针压缩,使 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 Plugin 7
- Apple Silicon 需要链接器变通方法。请参阅@mikehardy 的相关说明。
感谢!
此版本包含来自 61 位贡献者的超过 1100 次提交。感谢所有为本版本做出贡献和提供支持的人!您可以在此处找到完整的更新日志。