发布 React Native 0.60
经过数百名贡献者数月辛勤工作,React Native 核心团队自豪地宣布发布 0.60 版本。此版本处理了 Android 和 iOS 平台的重大迁移,并解决了许多问题。这篇博文涵盖了本次发布的亮点。不过,一如既往,请查阅更新日志以获取更详细的信息。最后,感谢贡献者们帮助我们达成这一里程碑!
关注可访问性
可访问性 API 进行了许多改进,例如 announceForAccessibility,以及对 roles、action support、flags 等的改进。可访问性是一门复杂的科学,但我们希望这些改进能让 A11Y 更容易。务必查看 React Native 开源更新 2019 年 6 月,了解这些更改的更多细节。
全新开始
React Native 的启动界面已更新!感谢许多贡献者帮助创建了新的 UI。这个新的“Hello World”将以更友好、更具吸引力的方式欢迎用户进入生态系统。
AndroidX 支持
AndroidX 是 Android 生态系统向前迈出的重要一步,旧的支持库构件正在被弃用。对于 0.60 版本,React Native 已迁移到 AndroidX。这是一个重大更改,并且**您的原生代码和依赖项也需要迁移**。
通过此更改,React Native 应用程序将需要开始使用 AndroidX。它们不能在同一个应用程序中并排使用,因此所有应用程序代码和依赖项代码都需要使用其中一个。
虽然您自己的原生代码需要由您迁移,但 @mikehardy、@cawfree 和 @m4tt72 构建了一个名为“jetifier”的巧妙工具来修补您的 node_modules
。库维护者需要升级,但此工具为您提供了一个临时解决方案,同时给他们时间发布 AndroidX 版本。因此,如果您发现与 AndroidX 迁移相关的错误,请尝试一下。
CocoaPods 默认支持
CocoaPods 现已成为 React Native iOS 项目的一部分。如果您还没有这样做,请务必从现在开始使用 xcworkspace
文件打开 iOS 平台代码(提示:从根项目目录尝试 xed ios
)。此外,内部包的 podspec
已更改,使其与 Xcode 项目兼容,这将有助于故障排除和调试。作为升级到 0.60 的一部分,请期望对您的 Podfile
进行一些直接的更改,以带来这种令人兴奋的支持。请注意,我们知道与 use_frameworks!
存在兼容性问题,我们正在跟踪一个问题,其中包含解决方案和未来的补丁。
精简核心移除
**WebView** 和 **NetInfo** 之前已提取到单独的存储库中,在 0.60 版本中,我们已完成将它们从 React Native 存储库中迁移出去。此外,为了响应社区对新 App Store 政策的反馈,**Geolocation** 也已提取。如果您尚未完成迁移,请通过添加对 react-native-webview、@react-native-community/netinfo 和 @react-native-community/geolocation 的依赖来完成迁移。如果您想要自动化解决方案,请考虑使用 rn-upgrade-deprecated-modules。自提取以来,维护者已向这些存储库提交了 100 多个提交,我们很高兴看到社区的支持!
原生模块现在自动链接
负责 React Native CLI 的团队引入了对原生模块链接的重大改进,称为 自动链接!大多数情况下不再需要使用 react-native link
。同时,团队全面 overhauled 了链接过程。请务必 react-native unlink
任何预先存在的依赖项,如上述文档中提及。
升级助手
@lucasbento、@pvinis、@kelset 和 @watadarkstar 构建了一个出色的工具,名为 升级助手,以简化升级过程。它帮助 React Native 用户(使用旧式应用程序或复杂定制)查看版本之间的变化。查看更新的升级文档,并立即尝试用于您的升级路径!
致库维护者的注意事项
AndroidX 的更改几乎肯定需要更新您的库,因此请务必尽快包含支持。如果您暂时无法升级,请考虑对照 jetifier 检查您的库,以确认用户能够在构建时修补您的库。
查看自动链接文档以更新您的配置和自述文件。根据您的库以前的集成方式,您可能还需要进行一些额外更改。请查看 CLI 的依赖项指南,了解如何定义您的依赖项接口。
致谢
虽然这些是我们指出的亮点,但还有许多其他值得兴奋的地方。要查看所有更新,请查看变更日志。一如既往,请继续关注更多新闻。同时,尽情享受 0.60!