React Native 0.59 新特性

| 做者:Ryan Turnerhtml

| 公衆號連接:mp.weixin.qq.com/s/Z1SKqej4M…react

| 連接:facebook.github.io/react-nativ…android

Facebook 於本月 12 號發佈了 React Native v0.59。此次更新來自 88 個貢獻者的 644 次提交。讓咱們一塊兒來看看這個版本有什麼新特性。如下是官方通稿的譯文。git

🎣 Hooks

React Hooks 是此版本的一部分,它容許跨組件重用有狀態邏輯。下面這些資源介紹了 hook 相關的信息,能夠參考一下:github

能夠在應用中試一試,看看會不會讓你感到興奮。react-native

📱 更新的 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 微信羣。

相關文章
相關標籤/搜索