最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于Vue的異步組件

 更新時間:2023年04月21日 11:21:03   作者:自xing且樂觀~  
在大型項(xiàng)目中,我們可能需要拆分應(yīng)用為更小的塊,并僅在需要時再從服務(wù)器加載相關(guān)組件。Vue 提供了defineAsyncComponent 方法來實(shí)現(xiàn)此功能,需要的朋友可以參考下

基本用法?

在大型項(xiàng)目中,我們可能需要拆分應(yīng)用為更小的塊,并僅在需要時再從服務(wù)器加載相關(guān)組件。Vue 提供了defineAsyncComponent方法來實(shí)現(xiàn)此功能:

import { defineAsyncComponent } from 'vue'
 
const AsyncComp = defineAsyncComponent(() => {
  return new Promise((resolve, reject) => {
    // ...從服務(wù)器獲取組件
    resolve(/* 獲取到的組件 */)
  })
})
// ... 像使用其他一般組件一樣使用 `AsyncComp`

如你所見,defineAsyncComponent方法接收一個返回 Promise 的加載函數(shù)。這個 Promise 的resolve回調(diào)方法應(yīng)該在從服務(wù)器獲得組件定義時調(diào)用。你也可以調(diào)用reject(reason)表明加載失敗。

ES 模塊動態(tài)導(dǎo)入也會返回一個 Promise,所以多數(shù)情況下我們會將它和defineAsyncComponent搭配使用。類似 Vite 和 Webpack 這樣的構(gòu)建工具也支持此語法 (并且會將它們作為打包時的代碼分割點(diǎn)),因此我們也可以用它來導(dǎo)入 Vue 單文件組件:

import { defineAsyncComponent } from 'vue'
 
const AsyncComp = defineAsyncComponent(() =>
  import('./components/MyComponent.vue')
)

最后得到的AsyncComp是一個外層包裝過的組件,僅在頁面需要它渲染時才會調(diào)用加載內(nèi)部實(shí)際組件的函數(shù)。它會將接收到的 props 和插槽傳給內(nèi)部組件,所以你可以使用這個異步的包裝組件無縫地替換原始組件,同時實(shí)現(xiàn)延遲加載。

與普通組件一樣,異步組件可以使用app.component()全局注冊:

app.component('MyComponent', defineAsyncComponent(() =>
  import('./components/MyComponent.vue')
))

你也可以在局部注冊組件時使用defineAsyncComponent

<script>
import { defineAsyncComponent } from 'vue'
 
export default {
  components: {
    AdminPage: defineAsyncComponent(() =>
      import('./components/AdminPageComponent.vue')
    )
  }
}
</script>
 
<template>
  <AdminPage />
</template>

加載與錯誤狀態(tài)?

異步操作不可避免地會涉及到加載和錯誤狀態(tài),因此defineAsyncComponent()也支持在高級選項(xiàng)中處理這些狀態(tài):

const AsyncComp = defineAsyncComponent({
  // 加載函數(shù)
  loader: () => import('./Foo.vue'),
 
  // 加載異步組件時使用的組件
  loadingComponent: LoadingComponent,
  // 展示加載組件前的延遲時間,默認(rèn)為 200ms
  delay: 200,
 
  // 加載失敗后展示的組件
  errorComponent: ErrorComponent,
  // 如果提供了一個 timeout 時間限制,并超時了
  // 也會顯示這里配置的報(bào)錯組件,默認(rèn)值是:Infinity
  timeout: 3000
})

如果提供了一個加載組件,它將在內(nèi)部組件加載時先行顯示。在加載組件顯示之前有一個默認(rèn)的 200ms 延遲——這是因?yàn)樵诰W(wǎng)絡(luò)狀況較好時,加載完成得很快,加載組件和最終組件之間的替換太快可能產(chǎn)生閃爍,反而影響用戶感受。

如果提供了一個報(bào)錯組件,則它會在加載器函數(shù)返回的 Promise 拋錯時被渲染。你還可以指定一個超時時間,在請求耗時超過指定時間時也會渲染報(bào)錯組件。

搭配 Suspense 使用?

異步組件可以搭配內(nèi)置的<Suspense>組件一起使用。

到此這篇關(guān)于關(guān)于Vue的異步組件的文章就介紹到這了,更多相關(guān)Vue異步組件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue百度地圖實(shí)現(xiàn)定位和marker拖拽監(jiān)聽功能

    Vue百度地圖實(shí)現(xiàn)定位和marker拖拽監(jiān)聽功能

    這篇文章主要介紹了Vue百度地圖實(shí)現(xiàn)定位和marker拖拽監(jiān)聽功能,實(shí)現(xiàn)思路非常簡單,本文結(jié)合實(shí)例代碼效果圖給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-11-11
  • Vue3定義全局變量的方式總結(jié)(附代碼)

    Vue3定義全局變量的方式總結(jié)(附代碼)

    vue創(chuàng)建全局變量和方法有很多種,下面這篇文章主要給大家介紹了關(guān)于Vue3定義全局變量的方式,文中通過代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue3具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-04-04
  • vue vant Area組件使用詳解

    vue vant Area組件使用詳解

    這篇文章主要介紹了vue vant Area組件使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Vue組件系列開發(fā)之模態(tài)框

    Vue組件系列開發(fā)之模態(tài)框

    這篇文章主要介紹了Vue組件系列開發(fā)之模態(tài)框,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • vue mounted 調(diào)用兩次的完美解決辦法

    vue mounted 調(diào)用兩次的完美解決辦法

    在開發(fā)中發(fā)現(xiàn)其中一個頁面moutned調(diào)用了兩次,而其他頁面正常,表示很懵逼,然后查找原因,終于找到了,其實(shí)歸根到底是要知道m(xù)ounted的調(diào)用機(jī)制問題。這篇文章主要介紹了vue mounted 調(diào)用兩次的解決辦法,需要的朋友可以參考下
    2018-10-10
  • Vue中v-for更新檢測的操作方法

    Vue中v-for更新檢測的操作方法

    v-for 指令需要使用 item in items 形式的特殊語法,其中 items 是源數(shù)據(jù)數(shù)組,而 item 則是被迭代的數(shù)組元素的別名。今天通過本文給大家介紹Vue中v-for更新檢測的操作方法,感興趣的朋友一起看看吧
    2021-10-10
  • 基于vue實(shí)現(xiàn)滾動條滾動到指定位置對應(yīng)位置數(shù)字進(jìn)行tween特效

    基于vue實(shí)現(xiàn)滾動條滾動到指定位置對應(yīng)位置數(shù)字進(jìn)行tween特效

    這篇文章主要介紹了基于vue實(shí)現(xiàn)滾動條滾動到指定位置對應(yīng)位置數(shù)字進(jìn)行tween特效,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • vue-element-admin如何設(shè)置默認(rèn)語言

    vue-element-admin如何設(shè)置默認(rèn)語言

    這篇文章主要介紹了vue-element-admin如何設(shè)置默認(rèn)語言,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue3中ref動態(tài)綁定的技巧詳解

    vue3中ref動態(tài)綁定的技巧詳解

    這篇文章主要為大家詳細(xì)介紹了vue3中ref動態(tài)綁定的相關(guān)技巧,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,感興趣的小伙伴可以了解一下
    2024-01-01
  • vue使用keep-alive后清除緩存的方法

    vue使用keep-alive后清除緩存的方法

    這篇文章主要給大家介紹了關(guān)于vue使用keep-alive后清除緩存的相關(guān)資料,這個問題在我們?nèi)粘9ぷ髦薪?jīng)常會用到,本文通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08

最新評論

宕昌县| 英德市| 永州市| 白城市| 翁源县| 铁岭县| 惠来县| 科尔| 咸丰县| 焉耆| 车险| 泰安市| 延庆县| 唐海县| 奉化市| 新宁县| 波密县| 榆林市| 吕梁市| 图木舒克市| 奉节县| 百色市| 得荣县| 望城县| 法库县| 吉木萨尔县| 孟连| 呼和浩特市| 松桃| 乌鲁木齐市| 娱乐| 康乐县| 吉首市| 绥芬河市| 武定县| 梅州市| 新乡县| 承德县| 鄯善县| 西峡县| 苗栗县|