Vue組件開(kāi)發(fā)之異步組件詳解
一、引入
我們?cè)谥v異步組件之前,我們?cè)賮?lái)回顧一下webpack打包時(shí)的分包操作。我們可以使用import()
異步加載模塊來(lái)實(shí)現(xiàn)分包操作。import
函數(shù)的返回值是一個(gè)Promise
,所以我們可以使用then
進(jìn)行下一步處理。
如下圖所示為打包后的文件目錄,因?yàn)槲覀內(nèi)绻郊虞dmath.js文件,此時(shí)就不存在中間的文件,此時(shí)當(dāng)瀏覽器請(qǐng)求資源時(shí),就會(huì)很慢。
二、vue中的異步組件
通過(guò)上面的webpack配置我們明白了為什么要進(jìn)行分包操作,此時(shí)我們想一個(gè)問(wèn)題,如果一個(gè)網(wǎng)站的頁(yè)面在用戶(hù)第一次瀏覽器時(shí)就將全部頁(yè)面都下載了,這樣會(huì)出現(xiàn)一個(gè)問(wèn)題,就是首屏加載過(guò)慢。
如果我們的項(xiàng)目過(guò)大了,對(duì)于某些組件我們想要異步加載(也就是分包處理),此時(shí)Vue給我們提供了一個(gè)函數(shù)defineAsyncComponent
defineAsyncComponent
可以傳入兩種類(lèi)型的參數(shù),第一個(gè)是函數(shù)
,該函數(shù)需要返回Promise
,第二個(gè)參數(shù)是一個(gè)對(duì)象類(lèi)型,對(duì)異步函數(shù)進(jìn)行配置。
第一種寫(xiě)法:函數(shù)寫(xiě)法
打包后的文件
第二種寫(xiě)法:對(duì)象寫(xiě)法
如圖所示是可以實(shí)現(xiàn)分包操作,相面詳細(xì)介紹一下傳入對(duì)象中的選項(xiàng)。
loader選項(xiàng)
:需要一部加載的模塊,對(duì)應(yīng)的是一個(gè)函數(shù)。
loadingComponent
:加載過(guò)程中顯示的組件。
errorComponent
:加載失敗時(shí)顯示的組件。
delay
:給出時(shí)間,當(dāng)加載時(shí)間超過(guò)該時(shí)間,直接顯示error
組件。
suspensible
:定義組件是否可掛起,默認(rèn)是true
。
三、異步組件和suspense
suspense是一個(gè)實(shí)驗(yàn)功能的API,其功能可變。
Suspense
存在兩個(gè)插槽,一個(gè)是default
, 另一個(gè)是fallback
,default
插槽中的內(nèi)容是當(dāng)該插槽中的組件可以顯示則展示,如果不可以展示,則顯示fallback
中的內(nèi)容。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
vue中使用animate.css實(shí)現(xiàn)炫酷動(dòng)畫(huà)效果
這篇文章主要介紹了vue中使用animate.css實(shí)現(xiàn)動(dòng)畫(huà)效果,我們使用它,只需要寫(xiě)很少的代碼,就可以實(shí)現(xiàn)非常炫酷的動(dòng)畫(huà)效果,感興趣的朋友跟隨小編一起看看吧2022-04-04vue初嘗試--項(xiàng)目結(jié)構(gòu)(推薦)
這篇文章主要介紹了vue初嘗試--項(xiàng)目結(jié)構(gòu)的相關(guān)知識(shí),需要的朋友可以參考下2018-01-01vue項(xiàng)目中icon亂碼的問(wèn)題及解決
這篇文章主要介紹了vue項(xiàng)目中icon亂碼的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12使用vue實(shí)現(xiàn)滑動(dòng)滾動(dòng)條來(lái)加載數(shù)據(jù)
在vuejs中,我們經(jīng)常使用axios來(lái)請(qǐng)求數(shù)據(jù),但是有時(shí)候,我們請(qǐng)求的數(shù)據(jù)量很大,那么我們?nèi)绾螌?shí)現(xiàn)滑動(dòng)滾動(dòng)條來(lái)加載數(shù)據(jù)呢,接下來(lái)小編就給大家介紹一下在vuejs中如何實(shí)現(xiàn)滑動(dòng)滾動(dòng)條來(lái)動(dòng)態(tài)加載數(shù)據(jù),需要的朋友可以參考下2023-10-10