Categories: Vant4 教程

Vant4 Skeleton 骨架屏

介绍

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

引入

通过以下方式来全局注册组件,更多注册方式请参考组件注册

import { createApp } from vue;
import {
  Skeleton,
  SkeletonTitle,
  SkeletonImage,
  SkeletonAvatar,
  SkeletonParagraph,
} from vant;

const app = createApp();
app.use(Skeleton);
app.use(SkeletonTitle);
app.use(SkeletonImage);
app.use(SkeletonAvatar);
app.use(SkeletonParagraph);

代码演示

基础用法

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

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

显示头像

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

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

展示子组件

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

<van-skeleton title avatar :row="3" :loading="loading">
  <div>实际内容</div>
</van-skeleton>
import { ref, onMounted } from vue;

export default {
  setup() {
    const loading = ref(true);

    onMounted(() => {
      loading.value = false;
    });

    return {
      loading,
    };
  },
};

自定义展示内容

通过 ​template​ 插槽完成自定义内容的展示。

<van-skeleton>
  <template #template>
    <div :style="">
      <van-skeleton-image />
      <div :style="">
        <van-skeleton-paragraph row-width="60%" />
        <van-skeleton-paragraph />
        <van-skeleton-paragraph />
        <van-skeleton-paragraph />
      </div>
    </div>
  </template>
</van-skeleton>

API

Skeleton Props

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

SkeletonParagraph Props

参数 说明 类型 默认值
round 是否将段落显示为圆角风格 boolean false
row-width 段落占位图宽度 string 100%

SkeletonTitle Props

参数 说明 类型 默认值
round 是否将标题显示为圆角风格 boolean false
title-width 标题占位图宽度 number | string 40%

SkeletonAvatar Props

参数 说明 类型 默认值
avatar-size 头像占位图大小 number | string 32px
avatar-shape 头像占位图形状,可选值为 square string round

SkeletonImage Props

参数 说明 类型 默认值
image-size 图片占位图大小 number | string 32px
image-shape 图片占位图形状,可选值为 square string round

Skeleton Slots

名称 说明
default 骨架屏内容
template 自定义内容

类型定义

组件导出以下类型定义:

import type {
  SkeletonProps,
  SkeletonImageProps,
  SkeletonTitleProps,
  SkeletonImageShape,
  SkeletonAvatarShape,
  SkeletonParagraphProps,
} from vant;

主题定制

样式变量

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

名称 默认值 描述
–van-skeleton-paragraph-height 16px
–van-skeleton-paragraph-background var(–van-active-color)
–van-skeleton-paragraph-margin-top var(–van-padding-sm)
–van-skeleton-title-width 40%
–van-skeleton-avatar-size 32px
–van-skeleton-avatar-background var(–van-active-color)
–van-skeleton-duration 1.2s
–van-skeleton-image-size 96px
–van-skeleton-image-radius 24px
andy

前端小白,在Web176教程网这个平台跟大家一起学习,加油!

Share
Published by
andy

Recent Posts

vue:页面注入js修改input值

一般会直接这样写: let z…

7 小时 ago

聊聊vue3中的defineProps

在Vue 3中,defineP…

1 周 ago

在 Chrome 中删除、允许和管理 Cookie

您可以选择删除现有 Cooki…

2 周 ago

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

3 周 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

4 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

1 月 ago