Vue組件開發(fā)之異步組件詳解
一、引入
我們?cè)谥v異步組件之前,我們?cè)賮砘仡櫼幌聎ebpack打包時(shí)的分包操作。我們可以使用import()異步加載模塊來實(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中的異步組件
通過上面的webpack配置我們明白了為什么要進(jìn)行分包操作,此時(shí)我們想一個(gè)問題,如果一個(gè)網(wǎng)站的頁面在用戶第一次瀏覽器時(shí)就將全部頁面都下載了,這樣會(huì)出現(xiàn)一個(gè)問題,就是首屏加載過慢。
如果我們的項(xiàng)目過大了,對(duì)于某些組件我們想要異步加載(也就是分包處理),此時(shí)Vue給我們提供了一個(gè)函數(shù)defineAsyncComponentdefineAsyncComponent可以傳入兩種類型的參數(shù),第一個(gè)是函數(shù),該函數(shù)需要返回Promise,第二個(gè)參數(shù)是一個(gè)對(duì)象類型,對(duì)異步函數(shù)進(jìn)行配置。
第一種寫法:函數(shù)寫法

打包后的文件

第二種寫法:對(duì)象寫法


如圖所示是可以實(shí)現(xiàn)分包操作,相面詳細(xì)介紹一下傳入對(duì)象中的選項(xiàng)。
loader選項(xiàng):需要一部加載的模塊,對(duì)應(yīng)的是一個(gè)函數(shù)。
loadingComponent:加載過程中顯示的組件。
errorComponent:加載失敗時(shí)顯示的組件。
delay:給出時(shí)間,當(dāng)加載時(shí)間超過該時(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é)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Vue倒計(jì)時(shí)3秒后返回首頁Demo(推薦)
這篇文章主要介紹了Vue倒計(jì)時(shí)3秒后返回首頁Demo,倒計(jì)時(shí)結(jié)束后要清除計(jì)時(shí)器,防止內(nèi)存泄漏,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2023-11-11
vue2.0+vue-router構(gòu)建一個(gè)簡(jiǎn)單的列表頁的示例代碼
這篇文章主要介紹了vue2.0+vue-router構(gòu)建一個(gè)簡(jiǎn)單的列表頁的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-02-02
elementui之封裝下載模板和導(dǎo)入文件組件方式
這篇文章主要介紹了關(guān)于elementui之封裝下載模板和導(dǎo)入文件組件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
nuxt框架中對(duì)vuex進(jìn)行模塊化設(shè)置的實(shí)現(xiàn)方法
這篇文章主要介紹了nuxt框架中對(duì)vuex進(jìn)行模塊化設(shè)置的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
Vue實(shí)現(xiàn)簡(jiǎn)單的發(fā)表評(píng)論功能
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)簡(jiǎn)單的發(fā)表評(píng)論功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
詳解如何使用webpack在vue項(xiàng)目中寫jsx語法
本篇文章主要介紹了詳解如何使用webpack在vue項(xiàng)目中寫jsx語法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11

