Vue組件開發(fā)之異步組件詳解
一、引入
我們在講異步組件之前,我們再來回顧一下webpack打包時的分包操作。我們可以使用import()異步加載模塊來實現(xiàn)分包操作。import函數(shù)的返回值是一個Promise,所以我們可以使用then進行下一步處理。

如下圖所示為打包后的文件目錄,因為我們?nèi)绻郊虞dmath.js文件,此時就不存在中間的文件,此時當(dāng)瀏覽器請求資源時,就會很慢。

二、vue中的異步組件
通過上面的webpack配置我們明白了為什么要進行分包操作,此時我們想一個問題,如果一個網(wǎng)站的頁面在用戶第一次瀏覽器時就將全部頁面都下載了,這樣會出現(xiàn)一個問題,就是首屏加載過慢。
如果我們的項目過大了,對于某些組件我們想要異步加載(也就是分包處理),此時Vue給我們提供了一個函數(shù)defineAsyncComponentdefineAsyncComponent可以傳入兩種類型的參數(shù),第一個是函數(shù),該函數(shù)需要返回Promise,第二個參數(shù)是一個對象類型,對異步函數(shù)進行配置。
第一種寫法:函數(shù)寫法

打包后的文件

第二種寫法:對象寫法


如圖所示是可以實現(xiàn)分包操作,相面詳細(xì)介紹一下傳入對象中的選項。
loader選項:需要一部加載的模塊,對應(yīng)的是一個函數(shù)。
loadingComponent:加載過程中顯示的組件。
errorComponent:加載失敗時顯示的組件。
delay:給出時間,當(dāng)加載時間超過該時間,直接顯示error組件。
suspensible:定義組件是否可掛起,默認(rèn)是true。
三、異步組件和suspense

suspense是一個實驗功能的API,其功能可變。

Suspense存在兩個插槽,一個是default, 另一個是fallback,default插槽中的內(nèi)容是當(dāng)該插槽中的組件可以顯示則展示,如果不可以展示,則顯示fallback中的內(nèi)容。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
vue中使用animate.css實現(xiàn)炫酷動畫效果
這篇文章主要介紹了vue中使用animate.css實現(xiàn)動畫效果,我們使用它,只需要寫很少的代碼,就可以實現(xiàn)非常炫酷的動畫效果,感興趣的朋友跟隨小編一起看看吧2022-04-04
使用vue實現(xiàn)滑動滾動條來加載數(shù)據(jù)
在vuejs中,我們經(jīng)常使用axios來請求數(shù)據(jù),但是有時候,我們請求的數(shù)據(jù)量很大,那么我們?nèi)绾螌崿F(xiàn)滑動滾動條來加載數(shù)據(jù)呢,接下來小編就給大家介紹一下在vuejs中如何實現(xiàn)滑動滾動條來動態(tài)加載數(shù)據(jù),需要的朋友可以參考下2023-10-10

