* 它允許我們的應用程序在等待異步組件時渲染一些后備內容,可以讓我們創建一個平滑的用戶體驗。
**1. 異步組件`LearnSuspense.vue`**
```html
<template>
<h2>異步組件</h2>
<h3>{{ msg }}</h3>
</template>
<script lang="ts">
import { defineComponent } from 'vue'
export default defineComponent({
name: 'LearnSuspense',
setup() {
//等到2000ms后才返回數據
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve({
msg: 'Hello World!',
})
}, 2000)
})
},
})
</script>
```
**2. App.vue**
```html
<template>
<Suspense>
<!-- 異步組件 -->
<template #default>
<LearnSuspense />
</template>
<!-- 當異步組件LearnSuspense還沒有渲染完成之前,先顯示這里。當異步組件LearnSuspense完成渲染之后,則顯示異步組件,隱藏這里-->
<template v-slot:fallback>
<h2>Loading</h2>
</template>
</Suspense>
</template>
<script lang="ts">
import { defineComponent, ref } from 'vue'
import LearnSuspense from './components/LearnSuspense.vue'
export default defineComponent({
components: {
LearnSuspense
},
})
</script>
```
效果如下,因為異步組件 LearnSuspense 需要等待 2000ms 才渲染完成,在此之前,先顯示`Loading`,當異步組件 LearnSuspense 渲染完成后自動隱藏`Loading`并顯示異步組件。

- nodejs
- 同時安裝多個node版本
- Vue3
- 創建Vue3項目
- 使用 vue-cli 創建
- 使用 vite 創建
- 常用的Composition API
- setup
- ref
- reactive
- 響應數據原理
- setup細節
- reactive與ref細節
- 計算屬性與監視
- 生命周期函數
- toRefs
- 其它的Composition API
- shallowReactive與shallowRef
- readonly與shallowReadonly
- toRaw與markRaw
- toRef
- customRef
- provide與inject
- 響應式數據的判斷
- 組件
- Fragment片斷
- Teleport瞬移
- Suspense
- ES6
- Promise對象
- Promise作用
- 狀態與過程
- 基本使用
- 常用API
- async與await
- Axios