站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

vue項目首次加載緩慢怎么辦?兩種解決方案

vue項目首次加載緩慢怎么辦?下面本篇文章給大家介紹一下vue頁面首次加載緩慢原因及兩種解決方案,希望對大家有所幫助!

vue項目首次加載緩慢怎么辦?兩種解決方案

第一次打包vue的項目部署到服務(wù)器下時,發(fā)現(xiàn)初次加載特別的緩慢,將近20s頁面才加載出來,完全沒有開發(fā)環(huán)境上的那么流暢。主要原因是頁面在打包后如果不進(jìn)行相關(guān)配置會導(dǎo)致資源文件特別的大,一次想要全部加載完成會特別的耗時。這里簡單總結(jié)一下自己用到的一些優(yōu)化的方案。(學(xué)習(xí)視頻分享:vuejs視頻教程)

首先我們可以安裝webpack-bundle-analyzer 插件,通過這個插件我們可以在打包的時候看到打包文件的大小,可以明顯的看出哪些文件比較大。

解決方案1

1,去掉編譯文件中map文件。

在編譯好后,我們會看到文件夾下有特別多的.map文件,這些文件主要是幫助我們線上調(diào)試代碼,查看樣式。所以為了避免部署包過大,通常都不生成這些文件。

在 config/index.js 文件中將productionSourceMap 的值設(shè)置為false. 再次打包就可以看到項目文件中已經(jīng)沒有map文件 (文件大小 35MB–>10.5MB)

2,vue-router 路由懶加載

懶加載即組件的延遲加載,通常vue的頁面在運(yùn)行后進(jìn)入都會有一個默認(rèn)的頁面,而其他頁面只有在點(diǎn)擊后才需要加載出來。使用懶加載可以將頁面中的資源劃分為多份,從而減少第一次加載的時候耗時。

懶加載路由配置:

vue項目首次加載緩慢怎么辦?兩種解決方案

非懶加載路由配置:

vue項目首次加載緩慢怎么辦?兩種解決方案

如圖所示為通過懶加載后打包的js文件。而非懶加載的打包后一般只有一個app.js 文件。

vue項目首次加載緩慢怎么辦?兩種解決方案

解決方案2

使用CDN減小代碼體積加快請求速度

為什么使用CDN

使用CDN主要解決兩個問題:

打包時間太長、打包后代碼體積太大,請求慢
服務(wù)器網(wǎng)絡(luò)不穩(wěn)帶寬不高,使用cdn可以回避服務(wù)器帶寬問題

具體步驟

1.在/index.html中引入CDN

<!DOCTYPE html> <html>     <head>         <meta charset="utf-8">         <title>vue-manage-system</title>         <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">          <script src="https://cdn.bootcss.com/vue/2.5.3/vue.js"></script>         <script src="https://cdn.bootcss.com/vue-router/2.7.0/vue-router.min.js"></script>         <script src="https://cdn.bootcss.com/axios/0.17.1/axios.min.js"></script>         <link rel="stylesheet" href="https://cdn.bootcss.com/element-ui/2.4.0/theme-chalk/index.css">         <script src="https://cdn.bootcss.com/element-ui/2.4.0/index.js"></script>     </head>     <body>         <div id="app"></div>     </body> </html>

注意:修改配置后還是提示Element未定義,是因為Element依賴Vue,vue.js需要在element-ui之前引入,所以vue.js也要改為cnd的引入方式.

2.修改/build/webpack.base.conf.js中修改配置。給module.exports添加externals屬性(詳見https://webpack.docschina.org/configuration/externals/),其中鍵是項目中引用的,值是所引用資源的名字。需要注意的是資源名需要查看所引用的JS源碼,查看其中的全局變量是什么,例如element-ui的全局變量就說ELEMENT

 module.exports = {    context: path.resolve(__dirname, '../'),    entry: {      app: './src/main.js'    },    externals: {      'vue': 'Vue',      'vue-router': 'VueRouter',      'ElementUI': 'ELEMENT',      'axios': 'axios',    }  }

3.刪除原先的import

如果不刪除原先的import,項目還是會從node_modules中引入資源。
也就是說不刪的話,npm run build時候仍會將引用的資源一起打包,生成文件會大不少。所以我認(rèn)為還是刪了好。

如:
vue項目首次加載緩慢怎么辦?兩種解決方案

(學(xué)習(xí)視頻分享:web前端開發(fā)、編程基礎(chǔ)視頻)

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
精品无码综合一区二区三区| 亚洲成人精品久久| 日韩精品久久久肉伦网站| 成人啪精品视频免费网站| 精品亚洲国产成人| 色妞ww精品视频7777| 成人午夜精品无码区久久| 九九久久精品国产AV片国产| 日韩在线永久免费播放| 国产馆精品推荐在线观看| 中文无码亚洲精品字幕| 久久精品国产99国产精品亚洲| 亚洲欧洲国产精品你懂的| 国产在线拍揄自揄视精品不卡| 中文字幕一区精品| 国产精品视频不卡| 亚洲福利精品电影在线观看| 精品视频在线观看一区二区| 亚洲av日韩综合一区在线观看 | 免费无码精品黄AV电影| 国产精品福利在线播放| 91精品福利在线观看| 91精品久久国产青草| 精品无码人妻一区二区三区品 | 亚洲精品日韩一区二区小说| 国产精品久久成人影院| 国产成人精品男人的天堂538| 91精品国产综合久| 亚洲视频国产精品| 精品国产三级a∨在线| 182tv精品视频在线播放| 2021午夜国产精品福利| 91精品观看91久久久久久| 亚洲精品免费在线| 精品福利一区二区三区免费视频 | 国产精品一线二线三线| 国产精品极品美女免费观看| 国产大片91精品免费观看男同| 无码日韩人妻AV一区二区三区| 国产三级精品视频| 嘿嘿射久草日韩视频|