React Native 0.60 版本發佈公告
經過數百位貢獻者數個月的辛勤工作,React Native 核心團隊很榮幸地宣布 0.60 版本的發佈。此版本處理了 Android 和 iOS 平台的重要遷移,並且也解決了許多問題。這篇部落格文章涵蓋了此版本的重點。如同往常,請參閱變更日誌以取得更詳細的資訊。最後,感謝貢獻者協助我們達成這個里程碑!
專注於無障礙功能
無障礙功能 API 已進行許多改進,例如 announceForAccessibility,以及對 角色、動作支援、旗標等的改進。無障礙功能是一門複雜的科學,但我們希望這些改進能讓 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
。同時,團隊全面檢修了整體連結流程。請務必按照上述文件中的說明,react-native unlink
任何預先存在的依賴項。
升級助手
@lucasbento、@pvinis、@kelset 和 @watadarkstar 建置了一個絕佳工具,稱為 Upgrade Helper,以簡化升級流程。它可以協助具有棕地應用程式或複雜自訂的 React Native 使用者查看版本之間的變更。請查看已更新的升級文件,並立即試用以取得您的升級路徑!
給函式庫維護者的注意事項
AndroidX 的變更幾乎肯定需要更新您的函式庫,因此請務必盡快加入支援。如果您還無法升級,請考慮針對 jetifier 檢查您的函式庫,以確認使用者能夠在建置時修補您的函式庫。
檢閱自動連結文件以更新您的設定和 readme。根據您先前整合函式庫的方式,您可能還需要進行一些額外的變更。查看 CLI 中的依賴項指南,以取得關於如何定義您的依賴項介面的資訊。
感謝
雖然這些是我們指出的重點,但還有許多其他令人興奮之處。若要查看所有更新,請查看變更日誌。如同往常,請隨時關注更多新聞。同時享受 0.60 版本!