成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Vue.js 3.0 的 Suspense組件簡介

開發 前端
Suspense組件是Vue3中的知名功能之一,值得慶幸的是,Suspense組件非常容易理解,它們甚至不需要任何額外的導入!

Suspense組件是Vue3中的知名功能之一。

它們允許我們的應用程序在等待異步組件時渲染一些后備內容,可以讓我們創建一個平滑的用戶體驗。

值得慶幸的是,Suspense組件非常容易理解,它們甚至不需要任何額外的導入!

本文內容:

  • 什么是Suspense組件
  • 何時使用它
  • 如何使用
Vue.js 3.0 的 Suspense組件簡介

Suspense組件到底是什么?

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

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

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

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

  • 在頁面加載之前顯示加載動畫
  • 顯示占位符內容
  • 處理延遲加載的圖像

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

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

[[342258]]

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

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

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

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

  1. async function getArticleInfo() { 
  2.   // 一些異步API調用 
  3.   return { article } 
  4. }export default { 
  5.   async setup () {    var { article } = await getArticleInfo() 
  6.     return { 
  7.       article    }  }} 

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

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

  • 將異步組件包裝在<template #default>標記中
  • 在我們的Async組件的旁邊添加一個兄弟姐妹,標簽為<template #fallback>。
  • 將兩個組件都包裝在<suspense>組件中

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

看起來會像這樣。

  1. <Suspense> 
  2.   <template #default> 
  3.     <article-info/> 
  4.   </template> 
  5.   <template #fallback> 
  6.     <div>正在拼了命的加載…</div> 
  7.   </template> 
  8. </Suspense> 

你還可以捕獲組件錯誤

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

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

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

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

  1. <template> 
  2.   <div v-if="errMsg"> {{ errMsg }} </div> 
  3.   <Suspense v-else> 
  4.     <template #default> 
  5.       <article-info/> 
  6.     </template> 
  7.     <template #fallback> 
  8.       <div>正在拼了命的加載…</div> 
  9.     </template> 
  10.   </Suspense> 
  11. </template> 
  12. <script> 
  13. import { onErrorCaptured } from 'vue' 
  14. setup () { 
  15.   const errMsg = ref(null) 
  16.   onErrorCaptured(e => { 
  17.     errMsg.value = '呃,出了點問題!' 
  18.     return true 
  19.   })} 
  20.   return { error } 
  21. </script> 

Vue.js 3.0 的 Suspense組件簡介

結束

Suspense只是Vue使開發人員更容易解決常見問題的另一種方式。不必有條件地渲染組件,我們只需使用Suspense來為我們處理事情。

我認為,這是Vue3中最簡潔的功能之一。

現在,你應該對Vue中的Suspense組件有了更多的了解,并且已經想到了一些很酷的方法來開始將它們實現到你的項目中!

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2017-07-11 18:00:21

vue.js數據組件

2020-09-28 17:45:03

Vue.js 3.0前端代碼

2022-04-25 07:36:21

組件數據函數

2019-05-29 14:23:53

Vue.js組件通信

2023-10-12 12:43:16

組件Vue

2022-04-26 05:55:06

Vue.js異步組件

2021-05-18 07:51:37

Suspense組件Vue3

2025-01-14 15:12:13

2018-04-04 10:32:13

前端JavascriptVue.js

2016-11-04 19:58:39

vue.js

2017-07-04 17:55:37

Vue.js插件開發

2018-01-31 15:45:07

前端Vue.js組件

2020-06-02 14:00:53

Vue.js組件Web開發

2020-04-07 09:43:17

vue.js進度組件開發

2017-08-30 17:10:43

前端JavascriptVue.js

2018-07-10 15:35:33

Vue前端架構

2022-01-19 22:18:56

Vue.jsVue SPA開發

2017-07-20 11:18:22

Vue.jsMVVMMVC

2024-05-13 08:04:26

Vue.jsWeb應用程序

2016-11-01 19:10:33

vue.js前端前端框架
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91在线中文字幕 | 国产一区二区电影 | 中文字幕电影在线观看 | 日韩精品中文字幕在线 | 成人午夜av| 国产精品二区三区在线观看 | 成人av电影免费在线观看 | 特级做a爰片毛片免费看108 | 中文字幕在线免费观看 | 日韩精品免费一区二区在线观看 | 日韩精品一区二区三区在线播放 | 久久与欧美| 男女羞羞视频在线免费观看 | 午夜天堂精品久久久久 | 国产精品国产a | 亚洲天天干 | 可以在线看的黄色网址 | 日韩成人国产 | 麻豆精品久久久 | 亚洲精品乱码久久久久久黑人 | 欧美日韩国产三级 | 91色在线视频| 激情 婷婷 | 网站黄色在线免费观看 | 最新中文字幕在线 | 亚洲一区二区免费视频 | 日本三级电影在线免费观看 | 日韩精品一区二区三区在线观看 | 97久久精品午夜一区二区 | 一区二区三区播放 | 国产精品久久二区 | 久久午夜视频 | 久久伊人精品 | 午夜影院| 亚洲精品一区二区三区免 | 秋霞影院一区二区 | 羞羞视频免费观 | 九色91视频| 欧美a级成人淫片免费看 | 一区二区三区四区在线视频 | xx视频在线观看 |