React Native 0.59 新特性

知識小集發表於2019-03-15

| 作者: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 相關的資訊,可以參考一下:

可以在應用中試一試,看看會不會讓你感到興奮。

? 更新的 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 識別延遲載入的元件。具有深入和多樣化元件架構的應用程式將獲得最大的改進。

React Native 0.59 新特性

當升級到 0.59 時,會有一個新的 metro.config.js 檔案;將選項設定為 true 並向我們提供反饋!更多資訊可以參考文件 Performance 一章。

? 進行中的精簡核心庫(Lean core)

React Native 是一個龐大而複雜的專案,具有複雜的 repository。這使得程式碼庫對於貢獻者來說並不親民,難以測試,並且作為開發依賴庫來說太大。精簡核心庫是我們所做的一些努力,通過將程式碼遷移到單獨的庫以更好地管理來解決這些問題。過去的幾個版本已經看到了這個措施的第一步。

您可能會注意到額外元件現已正式棄用。這是一個好訊息,因為現在由這些功能的所有者來積極維護它們。注意警告訊息並遷移到新庫以獲取這些功能,因為它們將在以後的版本中刪除。下面的表格顯示了元件,其狀態以及遷移到的新位置。

React Native 0.59 新特性

在接下來的幾個月裡,將會有更多的元件被精簡。

??‍? CLI改進

React Native 的命令列工具是開發人員進入生態系統的入口點,但它們長期存在問題並且缺乏官方支援。CLI 工具已移至新的 repository,一組專門的維護人員已經做了一些令人興奮的改進。

現在,日誌格式化顯得更加友好。命令現在幾乎是立即執行 - 可以注意到一些區別:

React Native 0.59 新特性

? 升級到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 微信群。

React Native 0.59 新特性

相關文章