Skip to content

SkeletonScreen 骨架屏

数据加载过程中的骨架占位组件。支持 7 种类型的骨架动画,用于在页面数据未就绪时提供视觉反馈,减少用户等待焦虑。

基础用法

vue
<template>
  <!-- 加载中显示骨架屏 -->
  <SkeletonScreen v-if="loading" type="table" :rows="5" :columns="4" />
  <!-- 加载完成显示真实内容 -->
  <AiCrudPage v-else api="/api/user" :columns="columns" />
</template>

<script setup>
import { ref } from 'vue'
import SkeletonScreen from '@/components/common/SkeletonScreen.vue'

const loading = ref(true)
</script>

Props

属性类型默认值说明
typeString'simple'骨架屏类型,见下表
rowsNumber5列表/表格类型的行数
columnsNumber5表格类型的列数
fieldsNumber4表单类型的字段数
showAvatarBooleanfalse列表类型是否显示头像占位
showDescriptionBooleantrue列表类型是否显示描述行
showHeaderBooleantrue卡片类型是否显示头部
showImageBooleanfalse卡片类型是否显示图片占位

骨架屏类型

type效果适用场景
simple单行占位块文本加载
list头像 + 标题 + 描述列表消息列表、通知列表
card图片 + 标题 + 描述卡片商品列表、项目卡片
table表头 + 行骨架表格CRUD 页面表格加载(常用)
form标签 + 输入框表单表单页加载
chart柱状图 + 饼图占位图表页加载
dashboard卡片 + 图表仪表盘仪表盘整体加载

与 Loading 的区别

组件用途视觉效果
SkeletonScreen页面初始加载时替代真实内容灰色骨架条带 shimmer 动画
Loading操作进行中遮罩居中旋转加载图标 + 文字

注意事项

  • 所有骨架元素均带 shimmer 动画,支持暗色模式自动适配
  • 实际使用时通过 v-if / v-else 在骨架屏和真实内容之间切换
  • type="table" 配合 rowscolumns 效果最接近真实表格

Forge Admin — 基于 Vue3 + Spring Boot 的企业级后台管理框架