成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Vue.js3.0中Suspense組件的作用是什么

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

迎澤網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)2013年開創(chuàng)至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

Suspense組件到底是什么?

Suspense組件用于在等待某個(gè)異步組件解析時(shí)顯示后備內(nèi)容。

你可能會(huì)想我們會(huì)在什么時(shí)候使用異步組件?

老實(shí)說(shuō),超出你的想象。每當(dāng)我們希望組件等待數(shù)據(jù)獲取時(shí)(通常在異步API調(diào)用中),我們都可以使用Vue3 Composition  API制作異步組件。

以下是異步組件有用的一些實(shí)例:

  • 在頁(yè)面加載之前顯示加載動(dòng)畫

  • 顯示占位符內(nèi)容

  • 處理延遲加載的圖像

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

但是現(xiàn)在,Suspense隨Vue3內(nèi)置了,因此我們不必?fù)?dān)心跟蹤何時(shí)加載數(shù)據(jù)并呈現(xiàn)相應(yīng)的內(nèi)容。

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

好吧...那我們?nèi)绾螌?shí)現(xiàn)Suspense

在這個(gè)例子中,我們有一個(gè)異步的 ArticleInfo.vue 組件。由于本文的重點(diǎn)是Suspense,而不是Composition  API,因此,不會(huì)對(duì)這些細(xì)節(jié)進(jìn)行瘋狂的詳細(xì)介紹。如果您對(duì)更完整的Composition API教程感興趣,請(qǐng)參閱此處。

簡(jiǎn)而言之,只需知道 setup 方法可以像其他方法一樣被設(shè)置為異步的。

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

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

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

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

  • 將異步組件包裝在<template #default>標(biāo)記中

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

  • 將兩個(gè)組件都包裝在<suspense>組件中

使用插槽,Suspense將渲染后備內(nèi)容,直到默認(rèn)內(nèi)容準(zhǔn)備就緒。然后,它將自動(dòng)切換以顯示我們的異步組件。

看起來(lái)會(huì)像這樣。

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

你還可以捕獲組件錯(cuò)誤

Vue的另一個(gè)很酷的功能,尤其是當(dāng)我們開始使用異步組件時(shí),可以捕獲錯(cuò)誤并向用戶顯示一些錯(cuò)誤消息。

即使在Vue2中,也可以使用 errorCaptured 鉤子函數(shù)實(shí)現(xiàn),但是在Vue3中,它已重命名為 onErrorCaptured。

無(wú)論調(diào)用什么,此鉤子函數(shù)都會(huì)在捕獲到任何后代組件的錯(cuò)誤時(shí)運(yùn)行。如果出現(xiàn)問(wèn)題,我們可以將其與Suspense一起使用以渲染錯(cuò)誤。

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

<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 = '呃,出了點(diǎn)問(wèn)題!'     return true   })}   return { error } </script>

看完上述內(nèi)容,你們對(duì)Vue.js 3.0 中Suspense組件的作用是什么有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

網(wǎng)頁(yè)題目:Vue.js3.0中Suspense組件的作用是什么
URL網(wǎng)址:http://jinyejixie.com/article40/ppspeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、面包屑導(dǎo)航、電子商務(wù)、ChatGPT、全網(wǎng)營(yíng)銷推廣、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
义马市| 大足县| 灵川县| 建阳市| 永善县| 年辖:市辖区| 通海县| 罗定市| 兴业县| 通海县| 福安市| 西盟| 阜平县| 宜君县| 湖北省| 保山市| 扎兰屯市| 高碑店市| 玛曲县| 黑河市| 盐源县| 罗甸县| 巩留县| 富蕴县| 乡宁县| 桂平市| 开江县| 仙桃市| 武隆县| 绥江县| 东明县| 五华县| 灵璧县| 四子王旗| 菏泽市| 扎兰屯市| 博兴县| 广饶县| 太仆寺旗| 库车县| 宁乡县|