vue3 Suspense内置组件的使用

本文介绍如何使用Suspense组件实现页面加载时的占位效果,并通过一个子组件示例展示了如何处理异步数据获取的过程。文章还讨论了何时使用Suspense组件更为合适。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<Suspense>
 	// 加载时候的占位是什么
      <template #fallback>
      // 这里什么都可以图片还是文字都随你
        <img :src="loadingJPG" class="w-[80px] h-[80px]  object-cover rounded mt-1" alt=""/>
      </template>
      <template #default>
        <AsyncComponent/>
      </template>
 </Suspense>
<script lang="ts" setup>
	import AsyncComponent from "@/components/async.vue"
	import loadingJPG from "@/assets/g.jpg";
</script>
来到组件中,因为setup在以前的created之前所以这个时候dom元素还没有渲染,所以这时候你需要东西占位
所以Suspense这个提案就有了!多说一句,如果你不需要在顶层使用awaitasync 就不必要使用Suspense
这是子组件
<template>
  <div>
    <div>{{ result.age }}</div>
    <div>{{ result.name }}</div>
  </div>
</template>

<script lang="ts" setup>
import {subMitForm} from "@/type/types";
async function queue() {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve({name: "gq", age: 25,})
    }, 2000);
  });
}
let result: subMitForm = reactive({
  name: "",
  age: "",
});
let {name, age} = await <any>queue();
result.name = name;
result.age = age;
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值