97国产精品视频人人做人人爱,3344在线观看无码,成年人国产视频,欧美日一级片,在线看AV天堂,高清无码一本到东京热,欧美一级黄片一区2区,免费又爽又刺激高潮网址

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://m.0391cbd.com

存檔

主站蜘蛛池模板: 国产99视频在线| 日韩精品成人在线| 国产91丝袜在线观看| 国产网友愉拍精品视频| 欧美日韩一区二区在线播放| а∨天堂一区中文字幕| 欧美精品影院| 97无码免费人妻超级碰碰碰| 国产va在线观看| 日韩成人午夜| 91网在线| 丝袜久久剧情精品国产| 青草视频在线观看国产| 免费中文字幕在在线不卡| 日本一本正道综合久久dvd | 欧洲亚洲欧美国产日本高清| 婷婷午夜天| 亚洲无码高清免费视频亚洲| 最近最新中文字幕在线第一页| 亚洲国模精品一区| 精品国产中文一级毛片在线看 | 91探花在线观看国产最新| 一本大道香蕉高清久久| 色天天综合久久久久综合片| 国产三级国产精品国产普男人| 99re免费视频| 久久亚洲国产视频| 大香网伊人久久综合网2020| 国产精品hd在线播放| 亚洲国产中文欧美在线人成大黄瓜| 狠狠干综合| 天天综合亚洲| 亚洲人成高清| 国产亚洲精品va在线| 福利国产在线| 国产精品午夜电影| 中文成人在线| 国产福利免费在线观看| 国产成人精品午夜视频'| 日韩在线播放中文字幕| 天天做天天爱夜夜爽毛片毛片| 在线播放精品一区二区啪视频| 国产成人永久免费视频| 97se亚洲综合在线| 日韩区欧美区| 美女一级毛片无遮挡内谢| 国产精品免费福利久久播放| 69免费在线视频| 国产精品污污在线观看网站| 国产小视频免费| 亚洲一区二区三区国产精品| 亚洲第一天堂无码专区| 精品少妇人妻无码久久| 亚洲欧洲综合| 精品夜恋影院亚洲欧洲| 高清欧美性猛交XXXX黑人猛交| 国产浮力第一页永久地址| 国产精品九九视频| 久久77777| 日韩A级毛片一区二区三区| 高清无码一本到东京热| 欧美亚洲欧美| 亚洲AV无码久久精品色欲| 狠狠五月天中文字幕| 色哟哟国产精品| 国产成人综合久久| 国产精品久久精品| 国产一级裸网站| 在线观看免费国产| 成人永久免费A∨一级在线播放| 美女扒开下面流白浆在线试听| 亚洲人成网站日本片| 欧美午夜在线观看| 欧美国产另类| 亚洲精品国产成人7777| 亚洲IV视频免费在线光看| 精品视频一区在线观看| 国产最新无码专区在线| 久久成人国产精品免费软件| 97久久超碰极品视觉盛宴| 丁香六月激情婷婷| 久久毛片免费基地|