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 里面原本引入的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM