Skip to content

Spin 加载中

用于页面、卡片或局部区域的加载反馈。YH-UI 的 Spin 采用极简设计,不仅支持标准的 SVG 动画,还提供了动感的点状(Dot)模式。

基础用法

提供标准 SVG 动画,有多种尺寸可选,也支持显式传入数字像素值。

尺寸选项

点状模式

借鉴业内优秀组件库的 4 点旋转模式,视觉更加灵动且具备节奏感。

Dot 模式

旗舰级动效

除了基础的环形动画,YhSpin 还提供了多种旗舰级的 SVG 动效,满足不同场景下的视觉审美需求。

动效类型

描述文字与排列

支持添加描述文字,并可切换水平或垂直排列。

描述文字

色彩定制

支持自定义颜色,甚至可以传入 CSS 渐变值来实现更高级的视觉效果。

色彩定制

Glass 遮罩模式

通过 glass 属性可以开启全屏或局部区域的高斯模糊遮罩效果,常用于页面重要操作后的状态锁定。

Glass 遮罩

延迟显示 (防闪烁)

对于某些响应极快的请求(如 < 100ms),如果立即显示加载动画,可能会造成视觉上的“闪烁”不适感。通过 delay 属性可以设置延迟显示时间。

延迟显示

容器场景 (高级用法)

可以将 Spin 作为容器组件使用,包裹其他内容。当 showtrue 时,容器会自动进入加载状态并应用高斯模糊。

容器包裹

自定义插槽

通过 tip 插槽可以完全自定义描述文字区域的内容。

插槽自定义

在 Nuxt 中使用

Spin 完全兼容 Nuxt 3/4 环境。在 Nuxt 项目中,组件会自动导入,您可以配合 useFetch 等异步 API 轻松实现全屏或局部加载效果。

Nuxt 使用示例

SSR 渲染表现

Spin 组件在 SSR 服务端渲染时默认不会渲染 Spinner 动画,直到客户端 Hydration 完成后才会根据状态显示,确保不影响首屏解析性能。

API

Props

属性名说明类型默认值
show是否开启加载状态booleantrue
tip描述文字string-
size尺寸,支持关键词或自定义 px 长度'small' | 'default' | 'large' | number'default'
vertical是否垂直排列图标与文字booleanfalse
delay延迟显示时间 (ms),防闪烁number0
glass是否开启全屏 glass 遮罩模式booleanfalse
dot是否使用点状动画逻辑booleanfalse
type加载动画样式类型。可选:circle, chaser, gear, dual-ring, rectLoadingSpinnerType'circle'
color自定义颜色 (支持十六进制、RGB、CSS 渐变字符串或渐变配置对象)string | string[] | Record<string, string>-

Events

事件名说明参数
show加载状态显示时触发-
hide加载状态隐藏时触发-

Slots

插槽名说明
default包裹的内容。若存在此插槽,Spin 将作为容器模式运行
tip自定义描述文字区域

Expose

名称说明类型
visible当前动画是否处于可见状态ComputedRef<boolean>

主题变量 (CSS Variables)

组件支持通过以下变量自定义特定样式:

变量名说明默认值
--yh-spin-color加载图标的基础颜色var(--yh-color-primary)
--yh-spin-blur-radius容器模式下的模糊半径8px
--yh-spin-mask-bg容器模式下的遮罩背景色rgba(255, 255, 255, 0.4)
--yh-spin-mask-bg-dark暗色模式下的遮罩背景色rgba(0, 0, 0, 0.3)
--yh-spin-gradient渐变模式下的 CSS 背景值-

类型导出

名称说明
YhSpinProps组件 Props 类型
YhSpinEmits组件事件类型
YhSpinSlots组件插槽类型
YhSpinExpose组件 expose 类型
YhLoadingSpinnerType内置加载动画联合类型
YhSpinInstance组件实例类型

Released under the MIT License.