• <center id="sm46c"></center>
  • <dfn id="sm46c"></dfn>
  • <strike id="sm46c"></strike>
  • <cite id="sm46c"><source id="sm46c"></source></cite>
    • <strike id="sm46c"><source id="sm46c"></source></strike>
      <option id="sm46c"></option>
      国产精品天天看天天狠,女高中生强奷系列在线播放,久久无码免费的a毛片大全,国产日韩综合av在线,亚洲国产中文综合专区在,特殊重囗味sm在线观看无码,中文字幕一区二区三区四区在线,无码任你躁久久久久久老妇蜜桃

      Vue移動端項目優(yōu)化過程

      2020-3-15    前端達人

      文章目錄

      前言

      一、白屏時間過長分析

      二、針對性優(yōu)化

      針對animate.css

      針對mint-ui的優(yōu)化

      針對圖片的優(yōu)化

      三、webpack打包優(yōu)化與分析

      webpack-bundle-analyzer打包分析

      打包優(yōu)化

      四、優(yōu)化后線上測試速度提升

      五、優(yōu)化總結(jié)

      前言

      最近在做項目時,測試提出了在App端的H5項目入口加載時間過長,白屏等待過久,需要優(yōu)化的問題,于是著手開始分析:



      項目技術(shù)棧:基于Vue全家桶做的一個移動端類似WebApp的項目,使用到的第三方庫有:mint-ui, echarts,momentjs。

      項目痛點:白屏時間過長

      一、白屏時間過長分析

       通過訪問線上環(huán)境,結(jié)合Chrome devtool中Network和Performance功能可以具體分析整個白屏的耗時主要在哪一塊兒

      Network耗時記錄:

      點擊查看原圖

      Performance性能面板

      點擊查看原圖

      通過上面兩張圖分析,從瀏覽器發(fā)起請求到解析HTML完成這一過程中:
      animate.css, mini-ui.css的請求耗時最長。
      圖片過大耗時。
      二、針對性優(yōu)化
      針對animate.css
      animate.css由于使用的是第三方CDN(國外服務器)所有請求時間相對較長,所以如果必須要用animate.css那么可以下載下來作為本地資源,也可以使用國內(nèi)CDN,或者不用animate.css,而是針對使用到的幾個CSS動畫,直接自己造輪子
      針對mint-ui的優(yōu)化
      由于mint-ui在原項目中使用的是全局引用的方式,這才導致打包資源過大,css單獨請求耗時過長的問題,所以主要解決方案是按需引入mint-ui,借助 babel-plugin-component,我們可以只引入需要的組件,以達到減小項目體積的目的。

      安裝babel-plugin-component, 若已安裝可忽略
      修改 .babelrc (重點在plugins中):


      {
        "presets": [
          ["env", { "modules": false }],
          "stage-2"
        ],
        "plugins": ["transform-runtime",["component", [
            {
                "libraryName": "mint-ui",
                "style": true
            }
        ]]],
        "comments": false,
        "env": {
          "test": {
            "presets": ["env", "stage-2"],
            "plugins": [ "istanbul" ]
          }
        }
      }
      


      在main.js中引用使用到的插件


      import Vue from 'vue'
      import { Button, Cell } from 'mint-ui'
      import 'mint-ui/lib/style.min.css'  // 引用CSS
      import App from './App.vue'
      
      Vue.component(Button.name, Button)
      Vue.component(Cell.name, Cell)
      /* 或?qū)憺? * Vue.use(Button)
       * Vue.use(Cell)
       */
      
      new Vue({
        el: '#app',
        components: { App }
      })
      


      在使用的組件中改為按需引用組件


      import Vue from 'vue'
       var Popup = Vue.component('mt-popup')
       var Swipe = Vue.component('mt-swipe')
       var SwipeItem = Vue.component('mt-swipe-item')
       export default {
          name:'my-component',
          components:{
           Popup,
           Swipe,
           SwipeItem
          }
      }
      

      此按需引入方案也同樣適用于其他第三方UI組件庫



      針對圖片的優(yōu)化

      圖片小圖通過webpack可以直接轉(zhuǎn)為base64,而大圖可以通過壓縮或者換格式的方式來優(yōu)化,這里推薦一個好用的圖片壓縮工具,工具:tinyPNG,如下是圖片轉(zhuǎn)換前后對比


      點擊查看原圖


      三、webpack打包優(yōu)化與分析

      在完成了上述優(yōu)化以后,下面著重關(guān)注下webpack打包后生成的文件大小,看還有沒有可以優(yōu)化的余地。由于項目中已經(jīng)通過路由按需加載的方式來做了功能拆分,所以通過webpack打包后生成了很多分散的js文件,如下圖:


      20200313153537713.png

      通過上圖分析可以知道打包后有幾個文件相對較大,vendor.js都知道是第三方庫文件打包形成,之前通過mint-ui按需加載會有一定的變化,后面記錄。這里著重看另兩個帶hash的js文件,這里并看不出來它為什么這么大,所以這里需要用到webpack打包分析工具來做進一步的打包文件分析:webpack-bundle-analyzer

      webpack-bundle-analyzer打包分析

      它的作用如下圖,即在打包后生成打包文件大小分析圖,方便我們更加直觀的看到文件大小和引用情況

      點擊查看原圖



      • 這里先介紹下webpack-bundle-analyzer的簡單使用
      1. 安裝
      npm intall -D webpack-bundle-analyzer
      1. 修改webpack.pro.conf.js. (這里由于只是用于生產(chǎn)打包分析且是通過vue-cli生成的項目框架)
      var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
      
      module.exports = {
          // ...
          plugins:[
              new BundleAnalyzerPlugin()
          ]
      }
      

      運行npm run build,(webpack默認會在打包完成時生成分析圖)



      版權(quán)聲明:本文為CSDN博主「Sophie_U」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
      原文鏈接:https://blog.csdn.net/Sophie_U/article/details/104840167

      日歷

      鏈接

      個人資料

      藍藍設(shè)計的小編 http://www.li-bodun.cn

      存檔

      主站蜘蛛池模板: 欧美日韩中文国产一区发布 | 亚洲综合精品第一页| 人妻少妇无码专视频在线| 少妇无套内射中出视频| 日韩午夜一区二区福利视频| 无码国模国产在线观看免费| 亚洲 一区二区 在线| 精品久久久久久无码专区不卡| 中文字幕va| 苍井空一区二区波多野结衣av| 久久亚洲私人国产精品va| 亚洲国产清纯| 最新国产精品剧情在线ss| 欧美偷窥清纯综合图区| 2018高清国产一区二区三区| av大片在线无码免费| 亚洲国产精品人人做人人爱| 亚洲国产成人av在线观看| 无码人妻一区二区三区免费看| 在线一区二区中文字幕| 国产精品无码翘臀在线观看| 北安市| 亚洲人成亚洲人成在线观看| 狠狠色狠狠色综合日日不卡| 亚洲日韩久热中文字幕| 国产成人夜色高潮福利影视| 亚洲国产精品成人午夜在线观看| 亚洲午夜天堂| 性色av一区二区三区精品| 无码免费一区二区三区免费播放| 麻豆精品传媒一二三区| 国产精品久久久天天影视香蕉| 国产一区二区三区色老头| 亚洲成a人片在线观看88| 国产免费无码一区二区| YW尤物AV无码国产在线观看| 在线中文字幕国产精品| 国产亚洲日韩在线aaaa| 国产69精品久久久久99尤物| 成人午夜伦理在线观看| 久久碰国产一区二区三区|