Vue性能優化之組件按需加載(以及一些常見的性能優化方法)


  關於Vue中的按需加載我就簡單介紹一下:大概就是我們所有的東西都會在app.js里面,但是我們並不需要把所有的組件都一次性加載進來,我們可以在需要它的時候再將它加載進來,話不多說,開車!

1、webpack2 + ES5結合開車

沒發車前,我們頁面加載的js是這樣的:

   

   任你隨便點,你就只加載了這一個app.js文件,你所有的組件都在這里面

   准備發車:把你的路由中引入組件的方式改成這樣:

    

再來看看我們的頁面上加載的js文件(開車后):

只有當你加載了這個CityPicker組件的時候,我才引入它,也就是0.js,這就實現了異步加載,大概意思就是把我們的組件變成了一個函數,剛開始的時候它是不執行的,只有當你需要它的時候來觸發它了它才會加載進來。

  

1、webpack代碼分割結合AMD規范的require

  開車前就不說了,無論你怎么掙扎,你所有的東西都在app.js里,一次性全給你加再進來,准備發車:

    發車准備:把你路由里面引入組件的形式變成這樣:

  

  發車后的形態:

  

 

 漂亮,同樣達到了我們想要的效果

 

3、webpack的ensure來進行終極開車:

  簡單說一下它的思想:webpack編譯時,會靜態的解析代碼中的require.ensure(),同時將模塊添加到一個分開的chunk中,新的chunk會被webpack通過jsonp來按需加載。此方法內部依賴於Promise。

  一共有三個參數:

  參數一:字符串數組,模塊的依賴項,會提前進行加載,一般情況下為空。

  參數二:依賴項加載完成之后的回調函數。

  參數三:chunk名。相同chunk名的文件,所有的依賴都會被放進相同的文件束中。

  開始發車

  發車前:將你的引入組件的方式改成這樣:

  

 

  發車后:

  

  同樣實現了異步加載,並且最終要的是,City就是chunk名,相同chunk名的的文件,所有的依賴都會被放到相同的文件束中。

 

 

異步加載可以大大的提高性能,避免不必要的資源浪費,今天關於vue的性能優化就先到這里,下課,額再補充幾個Vue中性能優化的方法吧:

  1. 可以使用computed計算屬性來代替一些函數方法,(函數的話每次都會調用一次,計算屬性是根據它依賴的值變化了才會執行)

       2. 對於一些不需要頻繁調用的形式,使用v-if來取代v-show。(v-if的話是只有它存在了才會進行渲染,而v-show是無論如何都會渲染,只不過是將它隱藏了而已)

  3. 為item設置唯一的key值。(快速精准的定位到diff);

  4. SSR(服務器端渲染);

  5. 骨架屏加載。(在數據還沒來之前顯示骨架屏,提高用戶體驗);

  6. loading圖。(提高用戶體驗度,用戶第一);

  7. 圖片按需加載,圖片懶加載技術。(避免不必要的資源浪費)。

...未完待續

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM