| 作者:Ryan Turner
| 公眾號連結:mp.weixin.qq.com/s/Z1SKqej4M…
| 連結:facebook.github.io/react-nativ…
Facebook 於本月 12 號釋出了 React Native v0.59
。這次更新來自 88 個貢獻者的 644 次提交。讓我們一起來看看這個版本有什麼新特性。以下是官方通稿的譯文。
? Hooks
React Hooks 是此版本的一部分,它允許跨元件重用有狀態邏輯。下面這些資源介紹了 hook 相關的資訊,可以參考一下:
- Introducing Hooks:解釋了為什麼在 React 新增 Hook。
- Hooks at a Glance:對內建 Hooks 的快速預覽。
- Building Your Own Hooks:演示了使用自定義 Hooks 重用程式碼。
- [**]Making Sense of React Hooks](medium.com/@dan_abramo…):探索了 Hooks 解鎖的新可能性。
- useHooks.com:展示社群維護的 Hooks 清單和 demo。
可以在應用中試一試,看看會不會讓你感到興奮。
? 更新的 JSC,以在 Android 上提升效能和支援 64-bit
React Native 使用 JSC(JavaScriptCore)為應用程式提供支援。Android 上的 JSC 已經存在了幾年,這意味著很多現代 JavaScript 功能都不受支援。更糟糕的是,與 iOS 的現代 JSC 相比,它表現不佳。隨著這個版本的釋出,這一切將改變。
在 @DanielZlotin,@ dulmandakh,@ gengjiawen,@kmagiera 和 @kudo 等大神的努力下,Android 的 JSC 已有很大改進,還來了 64 位支援,同時效能也大幅改進。
? 更快的應用程式啟動與內聯需求
我們希望幫助開發者擁有高效能的 React Native 應用程式,並努力將 Facebook 的優化帶入社群。應用程式根據需要載入資源,而不是減慢啟動速度。此功能稱為“內聯需求”(inline requires
),因為它允許 Metro
識別延遲載入的元件。具有深入和多樣化元件架構的應用程式將獲得最大的改進。
當升級到 0.59 時,會有一個新的 metro.config.js
檔案;將選項設定為 true 並向我們提供反饋!更多資訊可以參考文件 Performance 一章。
? 進行中的精簡核心庫(Lean core)
React Native 是一個龐大而複雜的專案,具有複雜的 repository。這使得程式碼庫對於貢獻者來說並不親民,難以測試,並且作為開發依賴庫來說太大。精簡核心庫是我們所做的一些努力,通過將程式碼遷移到單獨的庫以更好地管理來解決這些問題。過去的幾個版本已經看到了這個措施的第一步。
您可能會注意到額外元件現已正式棄用。這是一個好訊息,因為現在由這些功能的所有者來積極維護它們。注意警告訊息並遷移到新庫以獲取這些功能,因為它們將在以後的版本中刪除。下面的表格顯示了元件,其狀態以及遷移到的新位置。
在接下來的幾個月裡,將會有更多的元件被精簡。
??? CLI改進
React Native 的命令列工具是開發人員進入生態系統的入口點,但它們長期存在問題並且缺乏官方支援。CLI 工具已移至新的 repository,一組專門的維護人員已經做了一些令人興奮的改進。
現在,日誌格式化顯得更加友好。命令現在幾乎是立即執行 - 可以注意到一些區別:
? 升級到0.59
要升級到 0.59,我們建議使用 rn-diff-purge
確定當前 React Native 版本到 0.59 之間的更改,然後手動更新這些更改。將專案升級到 0.59 後,您將能夠使用新改進的 react-native upgrade
升級命令(基於rn-diff-purge!)升級到後續的 0.60 及更高版本,因為新版本將支援這一特性。
? 破壞性更新
根據谷歌的最新建議,已經梳理了 0.59 中的 Android 支援,這可能會破壞現有應用程式。此問題可能表現為執行時崩潰和訊息,"You need to use a Theme.AppCompat theme (or descendant) with this activity"。我們建議更新專案的 AndroidManifest.xml
檔案,確保 android:theme
值是 AppCompat
主題(例如 @style / Theme.AppCompat.Light.NoActionBar
)。
react-native-git-upgrade
命令已在 0.59 中刪除,支援新改進的 react-native upgrade
命令。
? 小結
據官方宣告,0.59 是一個重大的釋出,同時在今年剩下的時間裡,還會有更多的改進。更多的資訊可以檢視官方文件。
看來 Facebook 這次是來真的了。
關注我們
歡迎關注我們的公眾號:zsxjtip,也歡迎加入我們的群組討論問題。可以加微信 coldlight_hh
/wsy9871
進入我們的 iOS
/flutter
微信群。