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

首頁 > 編程 > JavaScript > 正文

Vue.js如何實現路由懶加載淺析

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

前言

懶加載也就是延遲加載,不知道大家在工作中有沒有發現,當你的SPA(單頁應用程序)變得復雜時,打包構建后的Javascript包會變得非常大,以至于嚴重影響頁面的加載時間。幸運的是:vue-router支持WebPack內置的異步模塊加載系統。所以,那些使用較少的路由組件不必打包進bundles里,只需要在路由被訪問時按需加載。話不多說了,來一起看看詳細的實現過程:

使用

假設你的路由配置是這樣的:

import MainPage from './routes/MainPage.vue'import OtherMassivePage from './routes/OtherMassivePage.vue'const routes = [ { path: '/main', component: MainPage }, { path: '/other', component: OtherMassivePage }]

簡單來說,你可以使用require.ensure來替代import。它能幫你將OtherMassivePage組件以及該組件的所有依賴分割到一個單獨的chunk中去。

現在重啟你的應用,你會發現并沒有什么改變。但,當你打開開發人員工具,選擇檢查網絡,再一次訪問/other路徑時,你會看到一個新的文件被加載進來。

import MainPage from './routes/MainPage.vue'const OtherMassivePage = r => require.ensure([], () => r(require('./routes/OtherMassivePage.vue')))const routes = [ { path: '/main', component: MainPage }, { path: '/other', component: OtherMassivePage }]

是的,這看起來是有點奇怪,相信我,它并不是那么糟糕。

還有一種方法是將路由對應的組件定義成異步組件。

寫起來像這樣:

const OtherMassivePage = resolve => { // 空數組用來指定該路由組件需要加載的依賴 require.ensure([], () => { resolve(require('./routes/OtherMassivePage.vue')) })}

不過,你最好不要使用這種包裹起來的寫法,因為WebPack會使用靜態分析來檢測和分割塊。比較好的做法是,將他們寫成一行以減少空間的占用。

按組分塊

有時候我們想把某個路由下的所有組件都打包在同個異步 chunk 中。只需要 給 chunk 命名,提供require.ensure第三個參數作為 chunk 的名稱:

// 這兩條路由被打包在相同的塊中,訪問任一路由都會延遲加載該路由組件const OtherMassivePage = r => require.ensure([], () => r(require('./routes/OtherMassivePage.vue')), 'big-pages')const WeightLossPage = r => require.ensure([], () => r(require('./routes/WeightLossPage.vue')), 'big-pages')

不像許多其他的WebPack任務,這個方法出乎意料的簡單,并且能產生意想不到的有用結果。如果你正在維護那些變得臃腫不堪的大型單頁應用,我會毫不猶豫的將這種方法推薦給你。

作者:Joshua Bemenderfer

原文地址: lazy-loading-routes

譯者:jeneser

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄石市| 故城县| 久治县| 西林县| 宿迁市| 松滋市| 长沙县| 永清县| 深州市| 龙州县| 曲松县| 津市市| 宜兴市| 北川| 夏津县| 太谷县| 丹棱县| 台东县| 阿拉善盟| 甘肃省| 隆回县| 卓尼县| 永春县| 江油市| 民乐县| 浑源县| 吉林省| 淮北市| 和田县| 伊通| 奇台县| 庄浪县| 莱州市| 夏津县| 辽宁省| 天门市| 柯坪县| 汤原县| 攀枝花市| 镇坪县| 祁门县|