Skeleton 骨架屏

在数据加载过程中提供占位与动效,改善等待体验。

基础用法

最简单的骨架占位。


可配置行数

可自行配置占位行数。为更接近真实排版,实际渲染行数会比传入值多 1 行(额外渲染一行约占 33% 宽度的「标题」占位)。

动画

通过 animated 控制是否显示加载动画;为 true 时,u-skeleton 子节点会播放闪烁动画。

自定义模板

组件仅提供常见占位结构;可通过 template 插槽完全自定义。构建自定义结构时请尽量贴近真实 DOM,以减少高度跳变导致的布局抖动。

加载状态

加载结束后需要展示真实内容时,可用 loading 控制是否显示骨架;真实内容放在默认插槽中。

列表占位

列表数据尚未返回时,可用 count 控制渲染多少个骨架模板。不建议渲染过多假节点,会影响性能且销毁耗时更长,请将 count 控制在必要范围内。

TIP

不推荐在浏览器中渲染大量假 UI,仍可能造成性能问题并延长骨架销毁时间。count 尽量保持较小以获得更好体验。

避免闪烁

接口响应极快时,骨架刚出现又立刻切换为真实内容,容易产生闪烁。可使用 throttle 做展示/隐藏的节流。

TIP

throttle 支持 numberobject:传数字等价于 { leading: xxx },控制骨架出现节流;也可传 { trailing: xxx } 控制消失节流。

Delicious hamburger
Thu May 21 2026

初次加载

loading 初始即为 true 时,可设置 throttle: { initVal: true, leading: xxx },使首屏骨架立即展示而不被 leading 节流挡住。

切换显隐时减少跳动

TIP

可设置 throttle: { initVal: true, leading: xxx, trailing: xxx } 控制骨架首次展示,并在 loading 切换时让过渡更平滑。

在业务组件随加载状态显隐切换时,可设置 throttle: { leading: xxx, trailing: xxx } 减轻布局跳动。

骨架屏 API

骨架屏 属性

名称说明类型默认值
animated是否显示动画booleanfalse
count渲染多少个骨架模板number1
loadingtrue 时显示骨架,为 false 时显示默认插槽真实内容booleanfalse
rows占位行数;未提供 template 插槽时生效number3
throttle延迟毫秒;数字表示延迟显示;也可传 { leading, trailing } 控制显隐节流;需控制 loading 初始行为时可传 { initVal: true }number / object0

骨架屏 插槽

名称说明类型
default加载完成后的真实内容object
template骨架模板内容object

骨架项 API

骨架项 属性

名称说明类型默认值
variant骨架元素类型enumtext