Skip to content

Spin 加载中

用于页面和区块的加载中状态。

代码演示

基础用法

一个简单的 loading 状态。

vue
<template>
  <a-spin />
</template>

各种大小

小的用于文本加载,默认用于卡片容器级加载,大的用于页面级加载。

vue
<template>
  <a-space>
    <a-spin size="small" />
    <a-spin />
    <a-spin size="large" />
  </a-space>
</template>`

容器

放入一个容器中。

vue
<template>
  <div class="example">
    <a-spin />
  </div>
</template>

<style scoped>
.example {
  text-align: center;
  background: rgba(0, 0, 0, 0.05);
  border-radius: 4px;
  margin-bottom: 20px;
  padding: 30px 50px;
  margin: 20px 0;
}
</style>

卡片加载中

可以直接把内容内嵌到 Spin 中,将现有容器变为加载状态。

Loading state:
vue
<template>
  <a-spin :spinning="spinning">
    <a-alert
      message="Alert message title"
      description="Further details about the context of this alert."
    ></a-alert>
  </a-spin>
  <div class="spin-state">
    Loading state:
    <a-switch v-model:checked="spinning" />
  </div>
</template>
<script setup>
import { ref } from 'vue';
const spinning = ref(false);
</script>
<style scoped>
.spin-state {
  margin-top: 16px;
}
</style>

自定义描述文案

自定义描述文案。

Loading...
vue
<template>
  <a-spin tip="Loading...">
    <a-alert
      message="Alert message title"
      description="Further details about the context of this alert."
    ></a-alert>
  </a-spin>
</template>

延迟

延迟显示 loading 效果。当 spinning 状态在 delay 时间内结束,则不显示 loading 状态。

Loading state:
vue
<template>
  <a-spin :spinning="spinning" :delay="delayTime">
    <a-alert
      message="Alert message title"
      description="Further details about the context of this alert."
    ></a-alert>
  </a-spin>
  <div class="spin-state">
    Loading state:
    <a-switch v-model:checked="spinning" />
  </div>
</template>
<script setup>
import { ref } from 'vue';
const spinning = ref(false);
const delayTime = 500;
</script>
<style scoped>
.spin-state {
  margin-top: 16px;
}
</style>

API

参数说明类型默认值
delay延迟显示加载效果的时间(防止闪烁)number (毫秒)-
indicator加载指示符vNode | slot-
size组件大小,可选值为 small default largestringdefault
spinning是否为加载中状态booleantrue
tip当作为包裹元素时,可以自定义描述文案string | slot-
wrapperClassName包装器的类属性string-

静态方法

  • Spin.setDefaultIndicator({indicator}) 同上 indicator,你可以自定义全局默认元素
js
import { h } from 'vue';
Spin.setDefaultIndicator({
  indicator: h('i', { class: 'anticon anticon-loading anticon-spin ant-spin-dot' }),
});