宣布发布 React Native 0.60
在数百位贡献者数月的辛勤工作之后,React Native 核心团队自豪地宣布发布 0.60 版本。此版本处理了 Android 和 iOS 平台的大量迁移,并修复了许多问题。此博客文章涵盖了此版本的重要更新。但一如既往,请参阅变更日志以获取更多详细信息。最后,感谢各位贡献者帮助我们实现了这一里程碑!
关注可访问性
可访问性 API 已经有了很多改进,例如 announceForAccessibility,以及对 角色、操作支持、标志等等的改进。可访问性是一门复杂的学科,但我们希望这些改进能使 A11Y 变得更容易一些。请务必查看 2019 年 6 月 React Native 开源更新,以了解这些更改的更多详细信息。
全新开始
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 项目兼容,这将有助于故障排除和调试。预计您需要对 Podfile
进行 一些简单的更改 作为升级到 0.60 的一部分,以实现此激动人心的支持。请注意,我们已知 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
。同时,该团队全面改进了链接过程。请务必根据上述文档中的说明 react-native unlink
任何已存在的依赖项。
升级助手
@lucasbento、@pvinis、@kelset 和 @watadarkstar 构建了一个名为 升级助手 的出色工具,使升级过程更加简单。它可以帮助 React Native 用户使用旧版应用或复杂自定义项查看版本之间的更改内容。请查看 更新的升级文档 并立即尝试使用它进行升级!
致库维护者
AndroidX 的更改几乎肯定需要更新您的库,因此请确保尽快包含支持。如果您还无法升级,请考虑针对 jetifier 检查您的库,以确认用户是否能够在构建时修补您的库。
请查看自动链接文档以更新您的配置和自述文件。根据您之前集成库的方式,您可能还需要进行一些其他更改。请查看 CLI 的依赖项指南,了解如何定义您的依赖项接口。
感谢
虽然这些是我们注意到的亮点,但还有很多其他令人兴奋的更新。要查看所有更新,请查看变更日志。一如既往,敬请关注更多新闻。在此期间,尽情享受 0.60 版本吧!