1. 程式人生 > >vue專案效能優化(路由懶載入、gzip加速、cdn加速)

vue專案效能優化(路由懶載入、gzip加速、cdn加速)

前端工程效能優化一說意義深遠悠長,本章主要介紹除了一些基礎優化外如何實行路由懶載入、Gzip加速、CDN加速,讓網頁飛的快一些。

基礎優化

老生常談的一些:

  • 不要在模板中寫複雜的表示式
  • 慎用watch尤其是deep
  • 合理的使用v-if/v-show/v-for
  • 善用keep-alive
  • 使用Object.freeze()

一、 開啟GZIP

體積對比圖:
1541KB vs 466KB

耗時對比圖:
333ms vs 225ms

操作步驟:
1、安裝包(新版本的好像配置還要改~~)

2、webpack的配置

3、nginx新增配置:

server {
        gzip on; #開啟或關閉gzip on off
        gzip_static on;
        gzip_disable "msie6"; #不使用gzip IE6
        gzip_min_length 100k;  #gzip壓縮最小檔案大小,超出進行壓縮(自行調節)
        gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;  #壓縮檔案型別
        ...
}

二、路由懶載入

沒有懶載入的狀態下,vue打包檔案會預設把所有的業務程式碼打包到一個app.js中,如果專案複雜,app.js將會很大進入首頁的時間長,不利於使用者體驗。懶載入的意思是將頁面進行劃分,按需載入,進入頁面才請求,有效分擔首頁壓力,減少首頁載入時間。這個是非常有用的。
看下對比圖:

方法:
1、配置chunkFilename屬性

2、路由配置的時候,使用webpack的動態import

三、CND加速

vue打包檔案會預設把所有的第三方程式碼打包到一個vendor.js中,我們可以把部分超大的檔案剝離出來,使用cnd資源。如圖,我們將vue/vuex/vue-router/axios分離出來降低vendor.js的壓力。

方法:
1、引入外部資源CDN

2、webpack處理(別名處理)
key:要引入的資源名稱;value:模組提供給外部引用的名稱

3、去除引用,如果想避免全域性汙染,可如下定義