Skeleton 骨架屏

介绍

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

引入

  1. import { createApp } from 'vue';
  2. import { Skeleton } from 'vant';
  3. const app = createApp();
  4. app.use(Skeleton);

代码演示

基础用法

通过 title 属性显示标题占位图,通过 row 属性配置占位段落行数。

  1. <van-skeleton title :row="3" />

显示头像

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

  1. <van-skeleton title avatar :row="3" />

展示子组件

loading 属性设置成 false 表示内容加载完成,此时会隐藏占位图,并显示 Skeleton 的子组件。

  1. <van-skeleton title avatar :row="3" :loading="loading">
  2. <div>实际内容</div>
  3. </van-skeleton>
  1. export default {
  2. data() {
  3. return {
  4. loading: true,
  5. };
  6. },
  7. mounted() {
  8. this.loading = false;
  9. },
  10. };

API

Props

参数说明类型默认值
row段落占位图行数number | string0
row-width段落占位图宽度,可传数组来设置每一行的宽度number | string |
(number | string)[]
100%
title是否显示标题占位图booleanfalse
avatar是否显示头像占位图booleanfalse
loading是否显示骨架屏,传 false 时会展示子组件内容booleantrue
animate是否开启动画booleantrue
round v2.8.5是否将标题和段落显示为圆角风格booleanfalse
title-width标题占位图宽度number | string40%
avatar-size头像占位图大小number | string32px
avatar-shape头像占位图形状,可选值为 squarestringround

样式变量

组件提供了下列 Less 变量,可用于自定义样式,使用方法请参考主题定制

名称默认值描述
@skeleton-row-height16px-
@skeleton-row-background-color@active-color-
@skeleton-row-margin-top@padding-sm-
@skeleton-title-width40%-
@skeleton-avatar-size32px-
@skeleton-avatar-background-color@active-color-
@skeleton-animation-duration1.2s-

Skeleton 骨架屏 - 图1