宣布 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 国际化 API (ECMA-402,简称
Intl) 现已内置于 Android 版本的 Hermes 并默认启用,API 大小开销仅为 57-62K(相比之下,JSC 达到 6MiB)。因此 Hermes 用户不再需要地区语言相关的 polyfill。特别感谢 @mganandraj 及微软的合作伙伴们促成了这项实现! - iOS 版 Hermes 现已支持 Apple M1 Mac 和 Mac Catalyst!
- 内存优化,包括小整数(SMI)和指针压缩,使 JS 堆内存缩小了 30%。
Function.prototype.toString的改动,修复了因错误的特征检测导致的性能下降,并支持了源码注入的使用场景。
完整的 Hermes 更新日志请见此处。
如果你尚未启用 Hermes,请按这里的步骤将你的应用切换到 Hermes,以享受以上新特性和性能提升!
无障碍修复和新增功能
去年,Facebook 承诺加入 GAAD 提升 React Native 的无障碍体验。0.65 版本汇报了该承诺带来的成果以及其他无障碍改进!主要变化包括:
- 允许在 iOS 上指定高对比度的浅色和深色值,详情请参阅文档。
- 在 Android 上新增了
getRecommendedTimeoutMillisAPI。该接口公开了用户在 Android 无障碍选项中设置的默认超时时间,方便需要更多时间查看或操作控件的用户。 - 修复了 TalkBack/VoiceOver 对组件状态(例如
disabled和unselected)的正确朗读。
你可以在这里关注或参与我们待解决的无障碍问题!
依赖版本更新及注意事项
react-native-codegen版本0.0.7现在需要作为package.json中的devDependency。- JCenter 已经停止服务并转为只读。我们已移除 JCenter Maven 仓库,相关依赖改用 MavenCentral 和 Jitpack。
- OkHttp 升级到 v4.9.1,详情参见升级到 OkHttp 4。
- Flipper 升级到 0.93 版本,以支持 Xcode 12.5。详见 Flipper 更新日志。
- 支持 Android Gradle Plugin 7。
- Apple Silicon 需要链接器的补丁,具体见 @mikehardy 的说明。
感谢!
此次发布包含了来自 61 位贡献者 的超过 1100 条提交。感谢所有为本次版本贡献和支持的朋友!完整更新日志请见 这里。
