vue性能优化

背景 vue cli3.0 + element-ui 管理系统部署上线后首次访问速度非常慢

将写好的vue项目部署到服务器上后首次加载,速度感人,这里记录下优化的方案

1、查找原因

在network中看到页面加载中有一个打包文件请求的时间非常长
vue性能优化_第1张图片资源请求耗时:从图里可以明显看到个别js文件请求耗时高达7秒

2、选择解决方案

优化加载速度的方法很多,比如优化代码、优化请求接口,或者采用压缩打包文件(需要配置nginx,优化效果也比较明显)。
本文选择详细描述的是 cdn引入文件,减少webpack打包文件的体积,从而优化加载速度

3、话不多说直接上 第一步

vue项目下的index.html文件 cdn引入需要用到的包 引入地址推荐使用:cnd地址
可以选择对应版本



  
    
    
    
    
    
    <%= htmlWebpackPlugin.options.title %>
  
  
    
    
    
    
    
    
    
    

第二步 配置vue.config.js

这是我的配置 优化的关键点是在配置里加上 externals的配置 externals具体作用可以去webpack官网看

const path = require('path');
module.exports = {
    //部署应用包时的基本 URL ,用法和 webpack 本身的 output.publicPath 一致
    // publicPath:process.env.NODE_ENV === 'production'?'/':'./'
    publicPath:'./',
    //输出文件目录
    outputDir:'dist',
    //eslint-loader 是否在保存的时候检查
    lintOnSave:false,
    //是否使用包含运行时编译的 Vue 构建版本
    runtimeCompiler:true,
    //生产环境是否生成 sourceMap 文件
    productionSourceMap:false,
    // webpack-dev-server 相关配置
    devServer:{
        open:true,
        host:'localhost',
        port:9003,
        https:false,
    },
    configureWebpack:{ 
        resolve: {
            extensions: ['.js', '.json', '.vue', '.scss', '.css'],
            alias: {},
          },
        **externals: {
            'vue': 'Vue',
            'vuex': 'Vuex',
            'vue-router': 'VueRouter',
            'ElementUI': 'ELEMENT',
            'echarts': 'echarts',
            'Axios':'axios'
          },**
    },
    
}

第三步 修改引入文件的方式

例如 vuex

// import Vue from 'vue'			//删除
import Vuex from 'vuex'

// Vue.use(Vuex)				//删除

export default new Vuex.Store({
  state: {
  },
  mutations: {
  },
  actions: {
  },
  modules: {
  }
})

vue-router

// import Vue from 'vue'	//删除
import VueRouter from 'vue-router'

// Vue.use(VueRouter)		//删除

最后修改main.js文件的引入

import Vue from 'vue'
import App from './App'
import router from './router'
import store from './store'
//import ELEMENT from 'element-ui'		//element 做成按需加载 具体上篇博客有介绍
//Vue.use(ELEMENT)


/* eslint-disable no-new */
new Vue({
  el: '#app',
  router: router,
  store: store,
  render: h => h(App)
})

本章完

你可能感兴趣的:(加载优化,vue)