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

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

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

打包后的文件

第二種寫法:對象寫法


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

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

Suspense存在兩個插槽,一個是default, 另一個是fallback,default插槽中的內(nèi)容是當該插槽中的組件可以顯示則展示,如果不可以展示,則顯示fallback中的內(nèi)容。
總結
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容!
相關文章
vue2.0+vue-router構建一個簡單的列表頁的示例代碼
這篇文章主要介紹了vue2.0+vue-router構建一個簡單的列表頁的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02
nuxt框架中對vuex進行模塊化設置的實現(xiàn)方法
這篇文章主要介紹了nuxt框架中對vuex進行模塊化設置的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09

