今天就跟大家聊聊有關(guān)Vue.js 3.0 中Suspense組件的作用是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
迎澤網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)2013年開創(chuàng)至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
Suspense組件到底是什么?
Suspense組件用于在等待某個異步組件解析時顯示后備內(nèi)容。
你可能會想我們會在什么時候使用異步組件?
老實說,超出你的想象。每當我們希望組件等待數(shù)據(jù)獲取時(通常在異步API調(diào)用中),我們都可以使用Vue3 Composition API制作異步組件。
以下是異步組件有用的一些實例:
在頁面加載之前顯示加載動畫
顯示占位符內(nèi)容
處理延遲加載的圖像
以前,在Vue2中,我們必須使用條件(例如 v-if 或 v-else)來檢查我們的數(shù)據(jù)是否已加載并顯示后備內(nèi)容。
但是現(xiàn)在,Suspense隨Vue3內(nèi)置了,因此我們不必擔(dān)心跟蹤何時加載數(shù)據(jù)并呈現(xiàn)相應(yīng)的內(nèi)容。
好吧...那我們?nèi)绾螌崿F(xiàn)Suspense
在這個例子中,我們有一個異步的 ArticleInfo.vue 組件。由于本文的重點是Suspense,而不是Composition API,因此,不會對這些細節(jié)進行瘋狂的詳細介紹。如果您對更完整的Composition API教程感興趣,請參閱此處。
簡而言之,只需知道 setup 方法可以像其他方法一樣被設(shè)置為異步的。
對于我們的示例,ArticleInfo將具有異步 setup 方法,該方法將在返回之前加載用戶數(shù)據(jù)。
async function getArticleInfo() { // 一些異步API調(diào)用 return { article } }export default { async setup () { var { article } = await getArticleInfo() return { article } }}
然后,假設(shè)我們有一個 ArticlePost.vue 組件,其中包含我們的ArticleInfo組件。
如果我們要在等待組件獲取數(shù)據(jù)并解析時顯示“正在拼了命的加載…”之類的內(nèi)容,則只需三個步驟即可實現(xiàn)Suspense。
將異步組件包裝在<template #default>標記中
在我們的Async組件的旁邊添加一個兄弟姐妹,標簽為<template #fallback>。
將兩個組件都包裝在<suspense>組件中
使用插槽,Suspense將渲染后備內(nèi)容,直到默認內(nèi)容準備就緒。然后,它將自動切換以顯示我們的異步組件。
看起來會像這樣。
<Suspense> <template #default> <article-info/> </template> <template #fallback> <div>正在拼了命的加載…</div> </template> </Suspense>
你還可以捕獲組件錯誤
Vue的另一個很酷的功能,尤其是當我們開始使用異步組件時,可以捕獲錯誤并向用戶顯示一些錯誤消息。
即使在Vue2中,也可以使用 errorCaptured 鉤子函數(shù)實現(xiàn),但是在Vue3中,它已重命名為 onErrorCaptured。
無論調(diào)用什么,此鉤子函數(shù)都會在捕獲到任何后代組件的錯誤時運行。如果出現(xiàn)問題,我們可以將其與Suspense一起使用以渲染錯誤。
如果我們處理了一個錯誤以顯示錯誤消息,則上面的組件將是這樣。
<template> <div v-if="errMsg"> {{ errMsg }} </div> <Suspense v-else> <template #default> <article-info/> </template> <template #fallback> <div>正在拼了命的加載…</div> </template> </Suspense> </template> <script> import { onErrorCaptured } from 'vue' setup () { const errMsg = ref(null) onErrorCaptured(e => { errMsg.value = '呃,出了點問題!' return true })} return { error } </script>
看完上述內(nèi)容,你們對Vue.js 3.0 中Suspense組件的作用是什么有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
網(wǎng)頁題目:Vue.js3.0中Suspense組件的作用是什么
URL網(wǎng)址:http://chinadenli.net/article40/ppspeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、面包屑導(dǎo)航、電子商務(wù)、ChatGPT、全網(wǎng)營銷推廣、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)