真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

前言

創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括雙柏網(wǎng)站建設(shè)、雙柏網(wǎng)站制作、雙柏網(wǎng)頁制作以及雙柏網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,雙柏網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到雙柏省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

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

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

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

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

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

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

寫起來像這樣:

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

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

按組分塊

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

// 這兩條路由被打包在相同的塊中,訪問任一路由都會(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īng)用,我會(huì)毫不猶豫的將這種方法推薦給你。

作者:Joshua Bemenderfer

原文地址: lazy-loading-routes

譯者:jeneser

總結(jié)

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


當(dāng)前題目:Vue.js如何實(shí)現(xiàn)路由懶加載淺析
文章URL:http://weahome.cn/article/ggoseo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部