发布 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 用户不再需要区域设置 polyfill。非常感谢 @mganandraj 和 Microsoft 的其他合作伙伴推动了此实现的实现! - iOS 版 Hermes 现在支持 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 多个提交。感谢每位为此版本做出贡献和支持的人!您可以在此处找到完整的变更日志。