最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue.js如何實現(xiàn)路由懶加載淺析

 更新時間:2017年08月14日 09:54:58   作者:jenes  
Vue是可以自定義指令的,最近學(xué)習過程中遇見了一個需要懶加載的功能,發(fā)現(xiàn)網(wǎng)上這方面的資料較少,所以下面這篇文章主要給大家介紹了關(guān)于Vue.js如何實現(xiàn)路由懶加載的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。

前言

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

使用

假設(shè)你的路由配置是這樣的:

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中去。

現(xiàn)在重啟你的應(yīng)用,你會發(fā)現(xiàn)并沒有什么改變。但,當你打開開發(fā)人員工具,選擇檢查網(wǎng)絡(luò),再一次訪問/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 }
]

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

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

寫起來像這樣:

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

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

按組分塊

有時候我們想把某個路由下的所有組件都打包在同個異步 chunk 中。只需要 給 chunk 命名,提供require.ensure第三個參數(shù)作為 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任務(wù),這個方法出乎意料的簡單,并且能產(chǎn)生意想不到的有用結(jié)果。如果你正在維護那些變得臃腫不堪的大型單頁應(yīng)用,我會毫不猶豫的將這種方法推薦給你。

作者:Joshua Bemenderfer

原文地址: lazy-loading-routes

譯者:jeneser

總結(jié)

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

相關(guān)文章

  • vue{{}}拼接字符串和換行符方式

    vue{{}}拼接字符串和換行符方式

    這篇文章主要介紹了vue{{}}拼接字符串和換行符方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 詳解如何使用webpack打包Vue工程

    詳解如何使用webpack打包Vue工程

    本篇文章主要介紹了詳解如何使用webpack打包Vue工程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 微信小程序使用uni-app一鍵獲取用戶信息

    微信小程序使用uni-app一鍵獲取用戶信息

    這篇文章主要介紹了微信小程序使用uni-app一鍵獲取用戶信息,需要的朋友可以參考下
    2023-01-01
  • vuex項目中登錄狀態(tài)管理的實踐過程

    vuex項目中登錄狀態(tài)管理的實踐過程

    由于狀態(tài)零散地分布在許多組件和組件之間的交互中,大型應(yīng)用復(fù)雜度也經(jīng)常逐漸增長,為了解決這個問題,Vue 提供 vuex,這篇文章主要給大家介紹了關(guān)于vuex項目中登錄狀態(tài)管理的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • vue使用nprogress實現(xiàn)進度條

    vue使用nprogress實現(xiàn)進度條

    這篇文章主要為大家詳細介紹了vue使用nprogress實現(xiàn)進度條,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • vue不用import直接調(diào)用實現(xiàn)接口api文件封裝

    vue不用import直接調(diào)用實現(xiàn)接口api文件封裝

    這篇文章主要為大家介紹了vue不用import直接調(diào)用實現(xiàn)接口api文件封裝,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • vue使用JSEncrypt對密碼本地存儲時加解密的實現(xiàn)

    vue使用JSEncrypt對密碼本地存儲時加解密的實現(xiàn)

    本文主要介紹了vue使用JSEncrypt對密碼本地存儲時加解密,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2023-07-07
  • 使用async-validator編寫Form組件的方法

    使用async-validator編寫Form組件的方法

    本篇文章主要介紹了使用 async-validator 編寫 Form 組件的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Vue3之Vite中由element?ui更新導(dǎo)致的啟動報錯解決

    Vue3之Vite中由element?ui更新導(dǎo)致的啟動報錯解決

    這篇文章主要介紹了Vue3之Vite中由element?ui更新導(dǎo)致的啟動報錯解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 詳解vue組件之間相互傳值的方式

    詳解vue組件之間相互傳值的方式

    這篇文章主要介紹了vue組件之間相互傳值的方式,對vue感興趣的同學(xué),可以參考下
    2021-05-05

最新評論

左贡县| 峡江县| 剑河县| 巩义市| 兴山县| 镶黄旗| 咸宁市| 公安县| 山丹县| 钟祥市| 利川市| 桃源县| 平乐县| 华蓥市| 壤塘县| 榆树市| 曲水县| 华安县| 筠连县| 乌鲁木齐县| 丹阳市| 临漳县| 富民县| 厦门市| 延边| 彭泽县| 华亭县| 乌兰察布市| 濮阳市| 沙坪坝区| 桐庐县| 永新县| 乐安县| 淅川县| 远安县| 沂源县| 岳西县| 嘉兴市| 太谷县| 岐山县| 自贡市|