整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          面試遇到性能優化問題回答這 9 點,絕對加分!

          哈嘍, 今天給大家分享:前端性能優化——首頁資源壓縮 63%、白屏時間縮短 86%。

          提升首屏的加載速度,是前端性能優化中「最重要」的環節,這里筆者梳理出一些常規且有效的首屏優化建議

          「目標:」通過對比優化前后的性能變化,來驗證方案的有效性,了解并掌握其原理

          1、路由懶加載

          SPA 項目,一個路由對應一個頁面,如果不做處理,項目打包后,會把所有頁面打包成一個文件,「當用戶打開首頁時,會一次性加載所有的資源」,造成首頁加載很慢,降低用戶體驗

          列一個實際項目的打包詳情:

          js性能優化有哪些方法_性能優化過程中遵守的原則_優化算法性能評價的基本內容

          js性能優化有哪些方法_優化算法性能評價的基本內容_性能優化過程中遵守的原則

          將路由全部改成懶加載

          //?通過webpackChunkName設置分割后代碼塊的名字
          const?Home?=?()?=>?import(/*?webpackChunkName:?"home"?*/?"@/views/home/index.vue");
          const?MetricGroup?=?()?=>?import(/*?webpackChunkName:?"metricGroup"?*/?"@/views/metricGroup/index.vue");
          …………
          const?routes?=?[
          ????{
          ???????path:?"/",
          ???????name:?"home",
          ???????component:?Home
          ????},
          ????{
          ???????path:?"/metricGroup",
          ???????name:?"metricGroup",
          ???????component:?MetricGroup
          ????},
          ????…………
          ?]

          重新打包后,首頁資源拆分為 app.js 和 home.js,以及對應的 css 文件

          優化算法性能評價的基本內容_js性能優化有哪些方法_性能優化過程中遵守的原則

          優化算法性能評價的基本內容_性能優化過程中遵守的原則_js性能優化有哪些方法

          通過路由懶加載,該項目的首頁資源壓縮約52%

          路由懶加載的原理

          懶加載前提的實現:ES6 的動態地加載模塊——import()

          調用 import() 之處,被作為分離的模塊起點,意思是,被請求的模塊和它引用的所有子模塊,會分離到一個單獨的 chunk 中

          ——摘自《webpack——模塊方法》的 import\(\)小節

          要實現懶加載,就得先將進行懶加載的子模塊分離出來,打包成一個單獨的文件

          作用是 webpack 在打包的時候,對異步引入的庫代碼(lodash)進行代碼分割時,設置代碼塊的名字。webpack 會將任何一個異步模塊與相同的塊名稱組合到相同的異步塊中

          2、組件懶加載

          除了路由的懶加載外,組件的懶加載在很多場景下也有重要的作用

          舉個 :

          home 頁面 和 about 頁面,都引入了 彈框組件,該彈框不是一進入頁面就加載,而是需要用戶手動觸發后才展示出來

          home 頁面示例: