React-Native 0.59更新記錄,支持Hooks

《React-Native 0.59更新記錄》

RN此次的更新真的是期待已久,不只支持React新特性React Hooks還支持了LazyLoad,提高了Android端JSC的性能。性能優化

支持React Hooks

React Hooks的解決了咱們的不少問題,能夠經過個人博客中使用的示例代碼看到方便之處;主要是解決的不能跨組件重用業務邏輯處理和狀態的問題,固然還有其餘的好處,後面打算寫篇文章詳細介紹。架構

RN中支持這個,就不用再糾結使用Mobx仍是Redux,不用再擔憂滿屏散落的業務處理。async

更新Android平臺上JSC版本,利用64位處理器提高性能

RN使用JSC(JavaScriptCore)驅動咱們的應用程序。 在Android平臺上的JSC仍是幾年前的版本,這就意味着大量的現代JavaScript特性沒有被支持。甚至更糟的是,相比IOS的現代JSC性能低下。在此次發佈中,全部將改變。ide

新版的JSC將帶來64位的支持、現代JavaScript特性支持和巨大的性能提高。後面的維護也將利用Webkit的特性提高性能而不作大量的無用工做。工具

經過內聯引入加速App啓動

RN自己是很想提高性能並將這些優化服務到社區。基於這個願景,RN開源社區認爲應用程序應該是按需加載資源而不是臃腫的資源減慢App的啓動。這個特徵被稱做 "inline requires" (內聯引入),它可讓Metro識別要延遲加載的組件。組件架構複雜多樣的應用程序將獲得最大的改進。性能

在咱們默認打開它以前,咱們須要社區告訴咱們它是如何工做的。在升級到0.59後,將會是新的metro.config.js文件,修改選項爲true。這裏仍然有許多嘗試的空間,能夠參考官方性能優化該部份內容。優化

// 修改前
module.exports = {網站

transformer: {
    getTransformOptions: async () => ({
        transform: {
            experimentalImportSupport: false,
            inlineRequires: false
        }
    })
}

}
// 修改後
module.exports = {ui

transformer: {
    getTransformOptions: async () => ({
        transform: {
            experimentalImportSupport: true,
            inlineRequires: true
        }
    })
}

}命令行

精簡核心代碼

RN但願在未來的維護中更加高效的維護更少的核心代碼,而不是把一些組件放在裏面,因此官方將會把原有的部分默認組件從核心代碼中分離成單獨的組件,並單獨維護項目。如今已經在着手了。部分默認組件已將分離。 包括 AsyncStorage、ImageStore、NetInfo、Slider等。

CLI命令行工具改進並單獨分離維護

RN命令行工具長期存在問題,缺少官方支持,官方已將其已到新的代碼倉庫。RN CLI。官方已經作出了一些使人激動的改進。

破壞性的更新

根據谷歌官方建議官方已經清理了一些Android support,可能致使一些原有的App崩潰。須要已有項目進行升級的務必注意。該文章已同步個人我的網站 youngstream.tech

相關文章
相關標籤/搜索