Skip to content
在新窗口打开实时预览

Skeleton 骨架屏 ​

Skeleton 在首次请求尚未完成时预显示页面结构,支持快速段落模式和自定义骨架模板;SkeletonItem 是可组合的基础占位块,用于自由搭建骨架结构。

平台兼容性 ​

H5App微信小程序支付宝小程序
√√√√

基础用法 ​

快速模式通过 avatar、title 和 rows 等属性直接生成默认骨架:

vue
<snake-skeleton :loading="loading" avatar :rows="3">
  <view>真实内容</view>
</snake-skeleton>

自定义模板 ​

在 template 插槽中用 SkeletonItem 自由组合业务骨架:

vue
<snake-skeleton :loading="loading">
  <template #template>
    <snake-skeleton-item variant="image" height="300rpx" />
    <snake-skeleton-item width="60%" custom-style="margin-top: 20rpx" />
  </template>
  <view>真实内容</view>
</snake-skeleton>

SkeletonItem 支持 text、rect、circle、image 四种占位形态,也可以脱离 Skeleton 独立使用。

与请求状态配合 ​

仅在首次加载使用骨架屏;已有内容刷新时保留旧内容并用局部 loading 反馈,避免整页反复闪烁。

vue
<snake-skeleton :loading="initialLoading" :rows="4">
  <product-list :list="products" />
</snake-skeleton>

API ​

Skeleton ​

Props ​

参数说明类型默认值
loading是否显示骨架booleantrue
animated是否启用流光动画booleantrue
title是否显示默认标题占位booleantrue
titleWidth默认标题宽度string | number40%
titleHeight默认标题高度string | number18
rows默认段落行数number3
rowsWidth默认段落宽度,可逐行配置string | number | Array100%
rowsHeight默认段落高度,可逐行配置string | number | Array16
avatar是否显示默认头像占位booleanfalse
avatarSize默认头像尺寸string | number32
avatarShape默认头像形状circle | squarecircle
customStyle根节点样式string | object | array''

Slots ​

名称说明
default加载完成后的真实内容
template自定义骨架模板

SkeletonItem ​

Props ​

参数说明类型默认值
variant占位形态text | rect | circle | imagetext
width宽度,裸数字按 rpx;默认值显式使用 pxstring | number按形态
height高度,裸数字按 rpx;默认值显式使用 pxstring | number按形态
radius圆角,裸数字按 rpx;默认值显式使用 pxstring | number按形态
animated动画开关,默认继承骨架容器booleantrue
customStyle根节点样式string | object | array''

主题变量 ​

变量用途
--snake-skeleton-color骨架基础背景色
--snake-skeleton-highlight流光高亮颜色

为 uni-app 商城与 CMS 场景设计