• <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <small id="ggggg"></small> <sup id="ggggg"></sup>
    <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <tfoot id="ggggg"></tfoot>
  • <nav id="ggggg"><cite id="ggggg"></cite></nav>
    <nav id="ggggg"></nav>
    成人黃色A片免费看三更小说,精品人妻av区波多野结衣,亚洲第一极品精品无码,欧美综合区自拍亚洲综合,久久99青青精品免费观看,中文字幕在线中字日韩 ,亚洲国产精品18久久久久久,黄色在线免费观看

    Vue移動端項目優化過程

    2020-3-15    前端達人

    文章目錄

    前言

    一、白屏時間過長分析

    二、針對性優化

    針對animate.css

    針對mint-ui的優化

    針對圖片的優化

    三、webpack打包優化與分析

    webpack-bundle-analyzer打包分析

    打包優化

    四、優化后線上測試速度提升

    五、優化總結

    前言

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



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

    項目痛點:白屏時間過長

    一、白屏時間過長分析

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

    Network耗時記錄:

    點擊查看原圖

    Performance性能面板

    點擊查看原圖

    通過上面兩張圖分析,從瀏覽器發起請求到解析HTML完成這一過程中:
    animate.css, mini-ui.css的請求耗時最長。
    圖片過大耗時。
    二、針對性優化
    針對animate.css
    animate.css由于使用的是第三方CDN(國外服務器)所有請求時間相對較長,所以如果必須要用animate.css那么可以下載下來作為本地資源,也可以使用國內CDN,或者不用animate.css,而是針對使用到的幾個CSS動畫,直接自己造輪子
    針對mint-ui的優化
    由于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)
    /* 或寫為
     * 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組件庫



    針對圖片的優化

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


    點擊查看原圖


    三、webpack打包優化與分析

    在完成了上述優化以后,下面著重關注下webpack打包后生成的文件大小,看還有沒有可以優化的余地。由于項目中已經通過路由按需加載的方式來做了功能拆分,所以通過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. (這里由于只是用于生產打包分析且是通過vue-cli生成的項目框架)
    var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
    
    module.exports = {
        // ...
        plugins:[
            new BundleAnalyzerPlugin()
        ]
    }
    

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



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

    日歷

    鏈接

    個人資料

    藍藍設計的小編 http://www.lzhte.cn

    存檔

    主站蜘蛛池模板: 日本熟妇人妻系列专区| 国内精品伊人久久久久影院对白| 久久亚洲AV无码精品色午夜麻| 伊在人亚洲香蕉精品区麻豆| 狠狠色综合网站久久久久久久高清| 在线va亚洲va天堂中文字幕| 国产成人精品视频网站| 国产精品99久久久精品免费观看| 亚洲国产欧美在线人成app| 中文字幕av久久激情| 亚洲一区精品自拍视频| 亚洲色婷婷六月亚洲婷婷6月| 精品无码国产污污污免费| 国产成人亚洲综合小说区| 亚洲天堂网在线播放| 91视频操| 亚洲一区二区有码在线| 中文字幕午夜五月一二| 国产高清在线观看av片麻豆| 欧美日本国产亚洲网站免费一区二区 | 91亚洲国产三上悠亚在线播放| 久分夜色精品国产噜噜亚洲av| 亚洲香蕉毛片久久网站老妇人| 91亚洲精品国产自在现线| 999久久久免费精品国产牛牛| 承德市| 久久亚洲日本不卡一区二区| 久久久亚洲欧洲日产无码AV| 日韩精品一区二区三区中文9| 日本一区二区三区中文字幕视频| 国产精品久久人人做人人爽| 欧美高清日韩在线视频观看| 97精品国产91久久久久久久| 亚洲AVAV天堂AV在线网爱情| 久久香蕉国产线看观看手机| 日本中文字幕第一页| 一级欧美一级日韩片| 久久天天躁狠狠躁夜夜2020| 国产午夜精品一区二区三区老| 国产成人av在线免播放观看| 青草午夜精品视频在线观看|