国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

詳解vue項目優化之按需加載組件-使用webpack require.ensure

2019-11-19 16:20:49
字體:
來源:轉載
供稿:網友

使用 vue-cli構建的項目,在 默認情況下 ,執行 npm run build  會將所有的js代碼打包為一個整體,

打包位置是 dist/static/js/app.[contenthash].js  

類似下面的路由代碼

router/index.js  路由相關信息,該路由文件引入了多個 .vue組件

import Hello from '@/components/Hello'import Province from '@/components/Province'import Segment from '@/components/Segment'import User from '@/components/User'import Loading from '@/components/Loading'

執行 npm run build 會打包為一個整體 app.[contenthash].js ,這個文件是非常大,可能幾兆或者幾十兆,加載會很慢

所以我們需要分模塊打包,把我們想要組合在一起的組件打包到一個 chunk塊中去

分模塊打包需要下面這樣使用 webpack的 require.ensure,并且在最后加入一個 chunk名,

相同 chunk名字的模塊將會打包到一起

router/index.js 修改為懶加載組件

const Province = r => require.ensure([], () => r(require('@/components/Province.vue')), 'chunkname1')const Segment = r => require.ensure([], () => r(require('@/components/Segment.vue')), 'chunkname1')const Loading = r => require.ensure([], () => r(require('@/components/Loading.vue')), 'chunkname3')const User = r => require.ensure([], () => r(require('@/components/User.vue')), 'chunkname3')

根據 chunkame的不同, 上面的四個組件, 將會被分成3個塊打包,最終打包之后與組件相關的js文件會分為3個 (除了app.js,manifest.js, vendor.js)

分模塊打包之后在 dist目錄下是這樣的, 這樣就把一個大的 js文件分為一個個小的js文件了,按需去下載,其他的使用方法和import的效果一樣

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南皮县| 玉林市| 雷山县| 安平县| 肥城市| 微山县| 绵竹市| 崇礼县| 宝丰县| 安顺市| 西青区| 白山市| 东乡县| 遂宁市| 南阳市| 海兴县| 萨嘎县| 资溪县| 郯城县| 闽清县| 清水河县| 黑河市| 昌平区| 平江县| 沁源县| 察雅县| 鄯善县| 卫辉市| 嘉祥县| 桑植县| 双辽市| 凭祥市| 泗阳县| 东辽县| 若尔盖县| 平阳县| 兴业县| 岳阳市| 高雄市| 葫芦岛市| 大余县|