91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue.js 3.0 中Suspense組件的作用是什么

發布時間:2021-07-09 11:10:42 來源:億速云 閱讀:298 作者:Leah 欄目:web開發

今天就跟大家聊聊有關Vue.js 3.0 中Suspense組件的作用是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

Suspense組件到底是什么?

Suspense組件用于在等待某個異步組件解析時顯示后備內容。

你可能會想我們會在什么時候使用異步組件?

老實說,超出你的想象。每當我們希望組件等待數據獲取時(通常在異步API調用中),我們都可以使用Vue3 Composition  API制作異步組件。

以下是異步組件有用的一些實例:

  • 在頁面加載之前顯示加載動畫

  • 顯示占位符內容

  • 處理延遲加載的圖像

以前,在Vue2中,我們必須使用條件(例如 v-if 或 v-else)來檢查我們的數據是否已加載并顯示后備內容。

但是現在,Suspense隨Vue3內置了,因此我們不必擔心跟蹤何時加載數據并呈現相應的內容。

Vue.js 3.0 中Suspense組件的作用是什么

好吧...那我們如何實現Suspense

在這個例子中,我們有一個異步的 ArticleInfo.vue 組件。由于本文的重點是Suspense,而不是Composition  API,因此,不會對這些細節進行瘋狂的詳細介紹。如果您對更完整的Composition API教程感興趣,請參閱此處。

簡而言之,只需知道 setup 方法可以像其他方法一樣被設置為異步的。

對于我們的示例,ArticleInfo將具有異步 setup 方法,該方法將在返回之前加載用戶數據。

async function getArticleInfo() {   // 一些異步API調用   return { article } }export default {   async setup () {    var { article } = await getArticleInfo()     return {       article    }  }}

然后,假設我們有一個 ArticlePost.vue 組件,其中包含我們的ArticleInfo組件。

如果我們要在等待組件獲取數據并解析時顯示“正在拼了命的加載…”之類的內容,則只需三個步驟即可實現Suspense。

  • 將異步組件包裝在<template #default>標記中

  • 在我們的Async組件的旁邊添加一個兄弟姐妹,標簽為<template #fallback>。

  • 將兩個組件都包裝在<suspense>組件中

使用插槽,Suspense將渲染后備內容,直到默認內容準備就緒。然后,它將自動切換以顯示我們的異步組件。

看起來會像這樣。

<Suspense>   <template #default>     <article-info/>   </template>   <template #fallback>     <div>正在拼了命的加載&hellip;</div>   </template> </Suspense>

你還可以捕獲組件錯誤

Vue的另一個很酷的功能,尤其是當我們開始使用異步組件時,可以捕獲錯誤并向用戶顯示一些錯誤消息。

即使在Vue2中,也可以使用 errorCaptured 鉤子函數實現,但是在Vue3中,它已重命名為 onErrorCaptured。

無論調用什么,此鉤子函數都會在捕獲到任何后代組件的錯誤時運行。如果出現問題,我們可以將其與Suspense一起使用以渲染錯誤。

如果我們處理了一個錯誤以顯示錯誤消息,則上面的組件將是這樣。

<template>   <div v-if="errMsg"> {{ errMsg }} </div>   <Suspense v-else>     <template #default>       <article-info/>     </template>     <template #fallback>       <div>正在拼了命的加載&hellip;</div>     </template>   </Suspense> </template> <script> import { onErrorCaptured } from 'vue' setup () {   const errMsg = ref(null)   onErrorCaptured(e => {     errMsg.value = '呃,出了點問題!'     return true   })}   return { error } </script>

看完上述內容,你們對Vue.js 3.0 中Suspense組件的作用是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

铜陵市| 奉贤区| 乡城县| 灵璧县| 南靖县| 曲沃县| 花莲市| 马关县| 盐城市| 阿克陶县| 图木舒克市| 永寿县| 安图县| 陆良县| 北安市| 丹寨县| 阿图什市| 崇左市| 扬州市| 从江县| 乌海市| 巴彦县| 丰县| 驻马店市| 光山县| 扶风县| 大理市| 晴隆县| 宾阳县| 梁山县| 古交市| 青龙| 临潭县| 会泽县| 泉州市| 克什克腾旗| 和静县| 桃江县| 清苑县| 修武县| 禄丰县|