Skip to content

AbpSpinner ​

AbpSpinner 显示进行中的操作,并提供屏幕阅读器标签,不阻止输入,也不管理请求。

仅在操作期间显示 ​

vue
<template>
  <div class="d-flex gap-3 align-items-center" :aria-busy="loading">
    <AbpButton variant="secondary" @click="loading = !loading">Toggle loading</AbpButton>
    <AbpSpinner v-if="loading" size="sm" label="Loading books" />
    <span>{{ loading ? 'Loading…' : 'Ready' }}</span>
  </div>
</template>

<script setup lang="ts">
import { ref } from 'vue';
import { AbpButton, AbpSpinner } from '@lsw-abpvue/theme-shared';
const loading = ref(true);
</script>

放在相关内容附近,给内容绑定 aria-busy,为加载图标设置明确的 label,避免只有视觉动画而没有含义。

按钮与页面加载 ​

保存按钮直接使用 AbpButton 的 loading,通常不必在内部另加加载图标。初始数据请求需要区分加载、空结果和错误。通过 finally 结束,或根据请求状态计算可见性。

size 只改变尺寸,不提供全屏遮罩、焦点锁定或减少动画的设置。不能重复的操作需要单独禁用。参见请求生命周期。

属性、事件与插槽 ​

源码

类型来自公开契约,默认表达式来自当前实现。短横线表示没有显式默认值;省略的可选布尔属性通常为 false。

Props ​

名称类型必填默认值
sizeAbpSize | undefined否'md'
labelstring | undefined否—
overlayboolean | undefined否—

Events ​

没有声明组件专有事件。

Slots ​

没有命名插槽。

非官方社区项目,采用 MIT 许可证,与 Volosoft 无关。