欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue-cli項目優(yōu)化方法- 縮短首屏加載時間

 更新時間:2018年04月01日 09:34:47   作者:buppt  
這篇文章主要介紹了vue-cli項目優(yōu)化 縮短首屏加載時間,需要的朋友可以參考下

最近實(shí)習(xí)的項目需求上要求不多,就學(xué)了下項目優(yōu)化,主要是首屏加載太慢。

大文件定位

我們可以使用webpack可視化插件Webpack Bundle Analyzer 查看工程js文件大小,然后有目的的解決過大的js文件。

安裝

npm install --save-dev webpack-bundle-analyzer

在webpack中設(shè)置如下,然后npm run dev 的時候默認(rèn)會在8888端口顯示。

const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
module.exports = {
 plugins: [
  new BundleAnalyzerPlugin()
 ]
}

JS文件按需加載

如果沒有這個設(shè)置,項目首屏加載時會加載整個網(wǎng)站所有的JS文件,所以將JS文件拆開,點(diǎn)擊某個頁面時再加載該頁面的JS是一個很好的優(yōu)化方法。

這里用到的就是vue的組件懶加載。在router.js中,不要使用import的方法引入組件,使用require.ensure。

import index from '@/components/index'
const index = r => require.ensure( [], () => r (require('@/components/index'),'index'))
//如果寫了第二個參數(shù),就打包到該`/JS/index` 的文件中。
//不寫第二個參數(shù),就直接打包在`/JS` 目錄下。
const index = r => require.ensure( [], () => r (require('@/components/index')))

使用cdn

打包時,把vue、vuex、vue-router、axios等,換用國內(nèi)的bootcdn 直接引入到根目錄的index.html中。

在webpack設(shè)置中添加externals,忽略不需要打包的庫。

externals: { 
 'vue': 'Vue', 
 'vue-router': 'VueRouter', 
 'vuex': 'Vuex', 
 'axios': 'axios' 
} 

在index.html中使用cdn引入。

<script src="http://cdn.bootcss.com/vue/2.2.5/vue.min.js"></script> 
<script src="http://cdn.bootcss.com/vue-router/2.3.0/vue-router.min.js"></script>
<script src="http://cdn.bootcss.com/vuex/2.2.1/vuex.min.js"></script> 
<script src="http://cdn.bootcss.com/axios/0.15.3/axios.min.js"></script>

將JS文件放在body的最后

默認(rèn)情況下,build后的index.html中,js的引入是在header中。

使用html-webpack-plugin插件,將inject的值改成body。就可以將js引入放到body最后。

var HtmlWebpackPlugin = require('html-webpack-plugin');
new HtmlWebpackPlugin({
   inject: 'body',
})

壓縮代碼并移除console

使用UglifyJsPlugin 插件來壓縮代碼和移除console。

new webpack.optimize.UglifyJsPlugin({
 compress: {
  warnings: false,
  drop_console: true,
  pure_funcs: ['console.log']
 },
 sourceMap: false
})

暫時只查到了這幾個優(yōu)化方法。

相關(guān)文章

  • 詳解如何使用vue實(shí)現(xiàn)可視化界面設(shè)計

    詳解如何使用vue實(shí)現(xiàn)可視化界面設(shè)計

    Vue是一款流行的前端開發(fā)框架,它的響應(yīng)式數(shù)據(jù)綁定和組件化特性使得它成為了可視化界面設(shè)計的一個理想選擇,本文將介紹如何使用Vue實(shí)現(xiàn)可視化界面設(shè)計,并且演示一個基于Vue的可視化界面設(shè)計案例,需要的朋友可以參考下
    2023-12-12
  • vue結(jié)合leaflet實(shí)現(xiàn)熱力圖

    vue結(jié)合leaflet實(shí)現(xiàn)熱力圖

    本文主要介紹了vue實(shí)現(xiàn)熱力圖,結(jié)合leaflet.heat插件可以很容易的做出熱力圖,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Vue路由權(quán)限控制解析

    Vue路由權(quán)限控制解析

    這篇文章主要介紹了Vue路由權(quán)限控制的相關(guān)資料,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2020-11-11
  • Vue打包程序部署到Nginx 點(diǎn)擊跳轉(zhuǎn)404問題

    Vue打包程序部署到Nginx 點(diǎn)擊跳轉(zhuǎn)404問題

    這篇文章主要介紹了Vue打包程序部署到Nginx 點(diǎn)擊跳轉(zhuǎn)404問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • vue自定義鍵盤實(shí)現(xiàn)車牌號的示例代碼

    vue自定義鍵盤實(shí)現(xiàn)車牌號的示例代碼

    本文主要介紹了vue自定義鍵盤實(shí)現(xiàn)車牌號的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Vue 全局loading組件實(shí)例詳解

    Vue 全局loading組件實(shí)例詳解

    這篇文章主要介紹了Vue 全局loading組件,需要的朋友可以參考下
    2018-05-05
  • Vue插件使用方法詳情分享

    Vue插件使用方法詳情分享

    這篇文章主要介紹了Vue插件使用方法詳情分享,使用插件之前顯示定義,下文通過js插件定義展開詳細(xì)文章介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-03-03
  • vue:el-input輸入時限制輸入的類型操作

    vue:el-input輸入時限制輸入的類型操作

    這篇文章主要介紹了vue:el-input輸入時限制輸入的類型操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • vue.js,ajax渲染頁面的實(shí)例

    vue.js,ajax渲染頁面的實(shí)例

    下面小編就為大家分享一篇vue.js,ajax渲染頁面的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • vite項目無法使用zangodb包裝器的解決方案

    vite項目無法使用zangodb包裝器的解決方案

    vite作為新一代工具鏈,具有很多便利之處,配置也非常簡單,它很好地整合了Rollup和其他復(fù)雜的構(gòu)建項,并提供了多種方向的典型腳手架模板,深受大家喜愛,本文給大家介紹了如何解決vite項目無法使用zangodb包裝器的問題,需要的朋友可以參考下
    2023-10-10

最新評論