发布 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
。
您可以在此处关注或贡献我们未解决的辅助功能问题!
值得注意的依赖项版本更新和注意事项
- 现在需要在
package.json
中将react-native-codegen
版本0.0.7
作为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 多个提交。感谢所有为此版本做出贡献和支持的人!您可以在此处找到完整的变更日志。