Skip to content

Skeleton 骨架屏

用于在内容加载过程中展示一组占位图形。

引入

通过 easycom 自动引入,无需手动注册。

代码演示

基础用法

通过 loading 属性控制是否显示骨架屏,true 显示骨架屏,false 显示实际内容。

html
<zq-skeleton :loading="loading">
  <text>实际内容</text>
</zq-skeleton>
js
const loading = ref(true)
setTimeout(() => { loading.value = false }, 2000)

显示标题

通过 title 属性显示标题占位。

html
<zq-skeleton title :loading="loading">
  <text>实际内容</text>
</zq-skeleton>

自定义行数

通过 row 属性设置段落占位行数,默认为 3。

html
<zq-skeleton :row="5" :loading="loading">
  <text>实际内容</text>
</zq-skeleton>

自定义行宽

通过 row-width 属性设置每行的宽度。可以传入字符串(统一宽度)或数组(逐行设置)。最后一行默认宽度为 60%。

html
<!-- 统一宽度 -->
<zq-skeleton row-width="80%" :loading="loading">
  <text>实际内容</text>
</zq-skeleton>

<!-- 逐行设置 -->
<zq-skeleton :row-width="['100%', '80%', '60%']" :loading="loading">
  <text>实际内容</text>
</zq-skeleton>

自定义标题宽度

通过 title-width 属性设置标题占位的宽度。

html
<zq-skeleton title title-width="60%" :loading="loading">
  <text>实际内容</text>
</zq-skeleton>

显示头像

通过 avatar 属性显示头像占位。

html
<zq-skeleton avatar title :row="3" :loading="loading">
  <text>实际内容</text>
</zq-skeleton>

头像形状

通过 avatar-shape 属性设置头像形状,支持 round(圆形)和 square(方形)。

html
<zq-skeleton avatar avatar-shape="square" :loading="loading">
  <text>实际内容</text>
</zq-skeleton>

头像大小

通过 avatar-size 属性设置头像大小,单位 rpx。

html
<zq-skeleton avatar :avatar-size="96" :loading="loading">
  <text>实际内容</text>
</zq-skeleton>

关闭动画

通过 :animate="false" 关闭骨架屏的脉冲动画。

html
<zq-skeleton :animate="false" :loading="loading">
  <text>实际内容</text>
</zq-skeleton>

API

Props

参数说明类型默认值
loading是否显示骨架屏booleantrue
row段落占位行数number3
title是否显示标题占位booleanfalse
title-width标题占位宽度string'40%'
avatar是否显示头像占位booleanfalse
avatar-size头像占位大小,单位 rpxnumber64
avatar-shape头像占位形状'round' | 'square''round'
animate是否开启动画booleantrue
row-width段落占位宽度string | string[]'100%'

Slots

名称说明
defaultloadingfalse 时显示的实际内容

注意事项

  • row-width 为字符串时,最后一行宽度自动设为 60%,其余行使用指定宽度。
  • row-width 为数组时,每行使用对应索引的宽度,未指定的行默认 100%。

主题定制

变量名说明
--color-bg-input占位块背景色

Released under the MIT License.