vue项目首屏加载优化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue项目首屏加载优化相关的知识,希望对你有一定的参考价值。

参考技术A 前端方面可以使用的操作:

1.尽量使用线上资源,本地的图片尽量上传

2.首屏的轮播图尽量不要采用线上图片,加载慢时会产生图片一块一块加载的问题,可以把本地图片转成base64来解决这个问题。注:本地图片不要过大,否则也会拖慢加载速度

3.对UI组件库使用按需引入

4.使用压缩传输compression-webpack-plugin,这个需要后端配合开启

5.删除map文件,在vue.config.js中把productionSourceMap设置为false即可

Vue项目优化首屏加载速度

Vue项目部署上线后经常会发现首屏加载的速度特别慢:那么有那写能做的简单优化呢

一、路由的懒加载

路由懒加载也就是 把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件。 
结合 Vue 的异步组件和 Webpack 的代码分割功能,轻松实现路由组件的懒加载。 
在router中,我们平时是这样引入组件的:
import Foo from ./Foo.vue

文档中指出,如下定义一个能够被 Webpack 自动代码分割的异步组件

const Foo = () => import(./Foo.vue)

在路由配置中什么都不需要改变,只需要像往常一样使用 Foo:

const router = new VueRouter({
  routes: [
    { path: /foo, component: Foo }
  ]
})

官网介绍地址:

https://router.vuejs.org/zh/guide/advanced/lazy-loading.html

二、使用cdn 

打包时,把vue、vuex、vue-router、axios等,换用国内的bootcdn直接引入到根目录的index.html。 
在webpack build 下 base.conf.js 设置中添加externals,忽略不需要打包的库。

module.exports = {
  context: path.resolve(__dirname, ../),
  entry: {
    app: ./src/main.js
  },
  externals:{
    vue:Vue,
    vue-router:VueRouter,
    vuex:Vuex
  },
  // 格式为‘aaa‘:‘bbb‘,其中,aaa表示要引入的资源的名字,bbb表示该模块提供给外部引用的名字,由对应的库自定。例如,vue为Vue,vue-router为VueRouter

去掉原有的引用直接使用就可以了,否则还是会打包

具体步骤为

(1)、引入

在这里有些名字是不能变的,尽量按照规定的来写

vue: Vue,
    vuex: Vuex,
    vue-router:VueRouter,
    // ‘axios‘: ‘axios‘,
    element-ui: ElementUI

2、引入cdn。推荐引入 百度静态资源库的

地址为:https://www.bootcdn.cn/

<link href="https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.4.0/theme-chalk/index.css" rel="stylesheet">

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.2/vue.min.js"></script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/vuex/3.0.1/vuex.min.js"></script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.0.1/vue-router.min.js"></script>
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.4.0/index.js"></script>

3、注释

main.js中

// import Vue from ‘vue‘

// import ELEMENT from ‘element-ui‘
// Vue.use(ELEMENT)
// import ElementUI from ‘element-ui‘
// import ‘element-ui/lib/theme-chalk/index.css‘
// Vue.use(ElementUI)

router.js中

// import Vue from ‘vue‘
// import Router from ‘vue-router‘


Vue.use(VueRouter)

use不能去在router中。

再就是vuex文件中的注释了

4、删除掉 package.json 里面原本引入的。




以上是关于vue项目首屏加载优化的主要内容,如果未能解决你的问题,请参考以下文章

vue项目首屏加载优化实战

Vue项目优化首屏加载速度

vue项目首屏加载优化实战

优化vue项目的首屏加载速度

Vue项目使用CDN优化首屏加载

vue-cli项目优化,缩短首屏加载时间