* 它允许我们的应用程序在等待异步组件时渲染一些后备内容,可以让我们创建一个平滑的用户体验。
**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`并显示异步组件。
![](https://img.kancloud.cn/6f/99/6f99dbfa15453a843ca27f47d656a8a4_1593x186.gif)
- 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