当前位置: 首页 > article >正文

Vue - Suspense的使用

在 Vue 3 中,Suspense 是一个用于处理异步组件的 API。它允许在加载异步组件时提供一个后备内容(例如加载指示器),从而改善用户体验。在加载期间,可以在页面上显示一个占位符,而不是让用户看到一个空白或错误的状态。

Suspense 主要用于处理以下场景:

  • 加载异步组件(如从服务器获取的组件)。
  • 处理异步操作(如数据获取、代码分割等)。
  • 提升用户体验,使得加载时 UI 不会出现闪烁或不一致的状态。

基本语法

Suspense 的基本用法非常简单,可以直接在组件中使用。它包含两个插槽:

  • default:当所有异步依赖加载完成时显示的内容。
  • fallback:在异步组件加载过程中显示的内容。

基本结构

<template>
  <Suspense>
    <template #default>
      <!-- 异步组件或其他内容 -->
    </template>
    <template #fallback>
      <!-- 加载时的占位内容 -->
    </template>
  </Suspense>
</template>

示例

// AsyncComponent.vue

<template>
  <div>
    <h2>异步组件内容</h2>
    <p>当前时间:{
  
  { currentTime }}</p>
  </div>
</template>

<script setup>
import { ref, onMounted } from 'vue';

const currentTime = ref('');

onMounted(() => {
  // 模拟数据加载
  setTimeout(() => {
    currentTime.value = new Date().toLocaleTimeString();
  }, 2000); // 2 秒加载延迟
});
</script>
// 主组件

<template>
  <div>
    <h1>主组件</h1>
    <Suspense>
      <template #default>
        <AsyncComponent />
      </template>
      <template #fallback>
        <div>加载中...</div> <!-- 加载时的占位内容 -->
      </template>
    </Suspense>
  </div>
</template>

<script setup>
import AsyncComponent from './AsyncComponent.vue';
</script>

总结

Suspense 是 Vue 3 提供的一个强大而灵活的功能,能够轻松处理异步组件的加载和状态管理。利用它,可以改善用户体验,避免复杂的加载状态管理。在合适的场景中使用,可以显著提升应用的可用性和用户满意度。


http://www.kler.cn/a/529951.html

相关文章:

  • MySQL5.5升级到MySQL5.7
  • 电子电气架构 --- 汽车电子拓扑架构的演进过程
  • C语言数组编程实例
  • 【数据结构】_以单链表为例分析各种方法实现的特殊情况考虑思路
  • 新能源算力战争:为什么AI大模型需要绿色数据中心?
  • 高速稳定,功能强大的免费下载工具!!
  • AWS EMR使用Apache Kylin快速分析大数据
  • 第三篇:模型压缩与量化技术——DeepSeek如何在边缘侧突破“小而强”的算力困局
  • 《Origin画百图》之脊线图
  • 精品PPT | 企业大数据治理平台统一指标库建设方案
  • IM 即时通讯系统-51-MPush开源实时消息推送系统
  • 手写单层RNN网络,后续更新
  • K8S集群架构及主机准备
  • SQL索引优化_提高系统响应速度的秘诀
  • Deepseek R1 本地化部署指南:跨平台实战
  • react redux监测值的变化
  • 硕成C语言1笔记
  • Linux - 进程间通信(3)
  • IOC三种实现方式的区别
  • Brooks MX Marathon Expressrm User Manual MX集成系统平台
  • 建表注意事项(2):表约束,主键自增,序列[oracle]
  • Lesson 127 A famous actress
  • 一维数组0-1背包问题理论基础
  • w189电商平台的设计与实现
  • 尝试ai生成figma设计
  • 系统URL整合系列视频二(界面原型)