Webpack Vue 技巧總結(jié)[按需加載, 懶加載仙逻,vue-router, output]

1. 懶加載

{
      path: '/',
      component: () => import('./views/HomeView'),
},
{
      path: '/login',
      component: () => import('./views/Login'),
},
// 或者
const HomeView = () => import('./views/HomeView')
const Login = () => import('./views/Login')
{
      path: '/',
      component: HomeView,
},
{
      path: '/login',
      component: Login,
},

webpack 按需加載打包優(yōu)先級/層級:

  • 入口文件中使用的組件將打包到公共文件中瞧捌,優(yōu)先于任何 chunk 加載
// main.js
// 加載且優(yōu)先加載一次
import ElementUI from 'element-ui'
Vue.use(ElementUI)

// Login.vue
// 之后加載其他模塊且正常使用(mian.js 已安裝組件)
<el-card>
...
</el-card>

訪問 / 時(shí)瀏覽器會(huì)加載 0.1dfesw3131de1.js
訪問 /login 時(shí)瀏覽器會(huì)加載 1.xawer12312321.js

其文件名結(jié)構(gòu)如下

// build/webpack.prod.conf.js
output: {
    path: config.build.assetsRoot,
    // 對應(yīng) entry 里面生成出來的文件
    filename: utils.assetsPath('js/[name].[chunkhash].js'),
    // 未被列在 entry 且需要被打包出來的文件
    chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
},

即打包之后組件/頁面文件名是以 chunkFilename 配置的格式命名的载绿。

魔法注釋

  • 指定哪幾個(gè)頁面打包在一起唉侄,用于兩個(gè)密切相關(guān)的頁面一次性加載育勺;
  • 指定打包后的 chunkFilename 文件名蕾额,便于美觀早芭,排查錯(cuò)誤等。

在 import 體中添加注釋

{
      path: '/singup',
      component: () => import(/* webpackChunkName: "auth" */ './views/Singup'),
},
{
      path: '/login',
      component: () => import(/* webpackChunkName: "auth" */ './views/Login'),
},

在配置文件中指定名稱格式

// build/webpack.prod.conf.js
output: {
    ...
    // chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
    chunkFilename: utils.assetsPath('js/[name].[chunkhash].js')
},

之后訪問 /login 時(shí)瀏覽器加載 auth.w23423341.js, 訪問 /singup 時(shí)瀏覽器無需加載組件信息诅蝶。

關(guān)于是否需要 chunkhash 討論
瀏覽器緩存詳解:expires,cache-control,last-modified,etag詳細(xì)說明
這里是瀏覽器退个、緩存的問題,使用 chunkhash 即代表模塊內(nèi)容改變會(huì)引起文件名改變调炬,瀏覽器不會(huì)從緩存中加載到已改變的文件语盈;否則某些 HTTP Server 配置下將導(dǎo)致瀏覽器不去加載更新后的文件,部署生效需要依賴 reload 服務(wù)器或者客戶端手動(dòng)清除緩存缰泡。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末刀荒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子棘钞,更是在濱河造成了極大的恐慌缠借,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宜猜,死亡現(xiàn)場離奇詭異泼返,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)姨拥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門绅喉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人垫毙,你說我怎么就攤上這事」鞍螅” “怎么了综芥?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長猎拨。 經(jīng)常有香客問我膀藐,道長,這世上最難降的妖魔是什么红省? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任额各,我火速辦了婚禮,結(jié)果婚禮上吧恃,老公的妹妹穿的比我還像新娘虾啦。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布傲醉。 她就那樣靜靜地躺著蝇闭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪硬毕。 梳的紋絲不亂的頭發(fā)上呻引,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機(jī)與錄音吐咳,去河邊找鬼逻悠。 笑死,一個(gè)胖子當(dāng)著我的面吹牛韭脊,可吹牛的內(nèi)容都是我干的童谒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼乾蓬,長吁一口氣:“原來是場噩夢啊……” “哼惠啄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起任内,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤撵渡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后死嗦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體趋距,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年越除,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了节腐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡摘盆,死狀恐怖翼雀,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情孩擂,我是刑警寧澤狼渊,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站类垦,受9級特大地震影響狈邑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蚤认,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一米苹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧砰琢,春花似錦蘸嘶、人聲如沸良瞧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽莺褒。三九已至,卻和暖如春雪情,著一層夾襖步出監(jiān)牢的瞬間遵岩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工巡通, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留尘执,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓宴凉,卻偏偏與公主長得像誊锭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子弥锄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容