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

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

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

前言

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

使用

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

import MainPage from './routes/MainPage.vue'
import OtherMassivePage from './routes/OtherMassivePage.vue'

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

簡(jiǎn)單來(lái)說(shuō),你可以使用require.ensure來(lái)替代import。它能幫你將OtherMassivePage組件以及該組件的所有依賴分割到一個(gè)單獨(dú)的chunk中去。

現(xiàn)在重啟你的應(yīng)用,你會(huì)發(fā)現(xiàn)并沒(méi)有什么改變。但,當(dāng)你打開(kāi)開(kāi)發(fā)人員工具,選擇檢查網(wǎng)絡(luò),再一次訪問(wèn)/other路徑時(shí),你會(huì)看到一個(gè)新的文件被加載進(jìn)來(lái)。

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 }
]

是的,這看起來(lái)是有點(diǎn)奇怪,相信我,它并不是那么糟糕。

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

寫起來(lái)像這樣:

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

不過(guò),你最好不要使用這種包裹起來(lái)的寫法,因?yàn)閃ebPack會(huì)使用靜態(tài)分析來(lái)檢測(cè)和分割塊。比較好的做法是,將他們寫成一行以減少空間的占用。

按組分塊

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

// 這兩條路由被打包在相同的塊中,訪問(wèn)任一路由都會(huì)延遲加載該路由組件
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ù),這個(gè)方法出乎意料的簡(jiǎn)單,并且能產(chǎn)生意想不到的有用結(jié)果。如果你正在維護(hù)那些變得臃腫不堪的大型單頁(yè)應(yīng)用,我會(huì)毫不猶豫的將這種方法推薦給你。

作者:Joshua Bemenderfer

原文地址: lazy-loading-routes

譯者:jeneser

總結(jié)

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

相關(guān)文章

  • vue2.x中的provide和inject用法小結(jié)

    vue2.x中的provide和inject用法小結(jié)

    這篇文章主要介紹了vue2.x中的provide和inject用法小結(jié),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-12-12
  • 探索Vue高階組件的使用

    探索Vue高階組件的使用

    本篇文章主要介紹了探索Vue高階組件的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • Vue 實(shí)現(xiàn)撥打電話操作

    Vue 實(shí)現(xiàn)撥打電話操作

    這篇文章主要介紹了Vue 實(shí)現(xiàn)撥打電話操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • vue3.0項(xiàng)目小白填坑之vue3.0+vite獲取環(huán)境變量

    vue3.0項(xiàng)目小白填坑之vue3.0+vite獲取環(huán)境變量

    Vue3項(xiàng)目使用vite作為打包工具時(shí),環(huán)境變量可以保存在.env文件中,在build時(shí)進(jìn)行解析,這篇文章主要給大家介紹了關(guān)于vue3.0項(xiàng)目小白填坑之vue3.0+vite獲取環(huán)境變量的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • vue-cli3.0+element-ui上傳組件el-upload的使用

    vue-cli3.0+element-ui上傳組件el-upload的使用

    這篇文章主要介紹了vue-cli3.0+element-ui上傳組件el-upload的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • vue使用Sass時(shí)報(bào)錯(cuò)問(wèn)題的解決方法

    vue使用Sass時(shí)報(bào)錯(cuò)問(wèn)題的解決方法

    這篇文章主要介紹了vue使用Sass時(shí)報(bào)錯(cuò)問(wèn)題的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • vue中el-date-picker type=daterange日期清空時(shí)不回顯的解決

    vue中el-date-picker type=daterange日期清空時(shí)不回顯的解決

    這篇文章主要介紹了vue中el-date-picker type=daterange日期清空時(shí)不回顯的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • vue父組件異步如何獲取數(shù)據(jù)傳給子組件

    vue父組件異步如何獲取數(shù)據(jù)傳給子組件

    這篇文章主要介紹了vue父組件異步如何獲取數(shù)據(jù)傳給子組件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 詳解vue3中websocket的封裝與使用

    詳解vue3中websocket的封裝與使用

    這篇文章主要為大家詳細(xì)介紹了vue3中websocket的封裝與使用的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • vue 實(shí)現(xiàn)在函數(shù)中觸發(fā)路由跳轉(zhuǎn)的示例

    vue 實(shí)現(xiàn)在函數(shù)中觸發(fā)路由跳轉(zhuǎn)的示例

    今天小編就為大家分享一篇vue 實(shí)現(xiàn)在函數(shù)中觸發(fā)路由跳轉(zhuǎn)的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09

最新評(píng)論