JGuang

加载中

Spin · Ant Design

交互预览
npm install antd@6.6.5 @ant-design/icons@6.3.4 dayjs@1.11.23

加载中

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

何时使用

页面局部处于等待异步数据或正在渲染过程时,合适的加载动效会有效缓解用户的焦虑。

代码演示

  • 基本用法 · basic
  • 各种大小 · size
  • 卡片加载中 · nested
  • 自定义描述文案 · tip
  • 延迟 · delayAndDebounce
  • 自定义指示符 · custom-indicator
  • 进度 · percent
  • 自定义语义结构的样式和类 · style-class
  • 全屏 · fullscreen

API

通用属性参考:通用属性

参数说明类型默认值版本全局配置
classNames用于自定义组件内部各语义化结构的 class,支持对象或函数Record<SemanticDOM, string> | (info: { props }) => Record<SemanticDOM, string>-6.0.0
delay延迟显示加载效果的时间(防止闪烁)number (毫秒)-×
description可以自定义描述文案ReactNode-6.3.0×
fullscreen显示带有 Spin 组件的背景booleanfalse5.11.0×
indicator加载指示符ReactNode-5.20.0
percent展示进度,当设置 percent="auto" 时会预估一个永远不会停止的进度number | 'auto'-5.18.0×
size组件大小,可选值为 small medium largestringmedium×
spinning是否为加载中状态booleantrue×
styles用于自定义组件内部各语义化结构的行内 style,支持对象或函数Record<SemanticDOM, CSSProperties> | (info: { props }) => Record<SemanticDOM, CSSProperties>-6.0.0
tip当作为包裹元素时,可以自定义描述文案。已废弃,请使用 descriptionReactNode-×
wrapperClassName包装器的类属性。已废弃,请使用 classNames.rootstring-×

静态方法

  • Spin.setDefaultIndicator(indicator: ReactNode)

    你可以自定义全局默认 Spin 的元素。

Semantic DOM

语义节点原生说明版本
root根元素,设置绝对定位、显示控制、颜色、字体大小、文本对齐、垂直对齐、透明度和过渡动画(fullscreen 为 false 时才有效)6.0.0
section加载元素区域,设置相对定位、弹性盒子布局、对齐方式和颜色6.3.0
indicator指示器元素,设置宽度、高度、字体大小、行内块显示、过渡动画、变换原点、行高6.0.0
description描述元素,设置字体大小、行高6.3.0
container容器元素,放置被 Spin 包裹的子元素,设置透明度和过渡动画6.3.0

语义说明来源: vendor/components/spin/demo/_semantic.tsx

主题变量(Design Token)

类型、继承关系和原生令牌声明保持固定源码原文;默认值由原生主题计算,并可能受 ConfigProvider 覆盖。本表不伪造静态默认值。

令牌类型原生说明
contentHeightnumber | string内容区域高度
dotSizenumber加载图标尺寸
dotSizeSMnumber小号加载图标尺寸
dotSizeLGnumber大号加载图标尺寸

声明来源: vendor/components/spin/style/index.ts

import type { CSSObject } from '@ant-design/cssinjs';

import { Keyframes } from '@ant-design/cssinjs';

import { resetComponent } from '../../style';

import type { FullToken, GenerateStyle, GetDefaultToken } from '../../theme/internal';

import { genStyleHooks, mergeToken } from '../../theme/internal';

import { genCssVar } from '../../theme/util/genStyleUtils';

export interface ComponentToken {
  /**
   * @desc 内容区域高度
   * @descEN Height of content area
   */
  contentHeight: number | string;
  /**
   * @desc 加载图标尺寸
   * @descEN Loading icon size
   */
  dotSize: number;
  /**
   * @desc 小号加载图标尺寸
   * @descEN Small loading icon size
   */
  dotSizeSM: number;
  /**
   * @desc 大号加载图标尺寸
   * @descEN Large loading icon size
   */
  dotSizeLG: number;
}

interface SpinToken extends FullToken<'Spin'> {
  spinDotDefault: string;
}

原生通用属性

Tips: 以下通用属性适用于 antd 大部分组件,不支持的组件会单独说明。

参数说明类型默认值
style自定义样式CSSProperties-
className自定义类名string-
rootClassName添加在组件最外层的 classNamestring-
autoFocus自动获取焦点,仅对表单类、链接、交互容器等可聚焦元素生效booleanfalse

安装并复现示例

npm install antd@6.6.5 @ant-design/icons@6.3.4 dayjs@1.11.23

使用 ConfigProvider 和原生 App,并单独配置 dayjs 语言。每个示例在查看代码中列出完整源码文件和额外固定依赖。示例名称用于选择演示,不是组件通用属性。主题、语言与 SSR 初始化见资源安装指南。

原生类型参考

源码查看器包含未修改的原生实现和以下声明文件,继承类型仍位于原生包中。代码中的英文注释保留为源码参考。

  • vendor/components/spin/Indicator/Looper.tsx
  • vendor/components/spin/Indicator/Progress.tsx
  • vendor/components/spin/Indicator/index.tsx
  • vendor/components/spin/index.tsx
  • vendor/components/spin/style/index.ts

来源与许可

https://github.com/ant-design/ant-design/tree/4a39f54842eade4e565ab336ef6097cd7e723cdd

保留原生中英文正文与可执行示例;官网专用的嵌入章节和令牌表格在本地展开。Ant Design 使用 MIT 许可,另列依赖的许可证也需保留。上传预览禁止向外发起请求,不提供后端服务。