Skip to content

Skeleton ​

简易介绍 ​

Skeleton 骨架屏,用于在数据加载时展示占位内容,提升用户体验。mengyue-components 进行了封装并进行了 vitest 测试。
可以使用 <MYSkeleton></MYSkeleton> 或者 <MYSkeleton /> 和<MYSkeleton-item></MYSkeleton-item>或者<MYSkeleton-item />来实现一个骨架屏。

基础用法 ​

默认多行文本骨架屏 ​

代码演示
展开代码

自定义行数 ​

使用count属性可以设置骨架屏的行数。

代码演示
展开代码

圆形骨架屏 ​

使用variant属性可以设置不同的骨架屏样式。

代码演示
展开代码

矩形骨架屏 ​

使用variant="rect"可以创建矩形骨架屏。

代码演示
展开代码

随机宽度 ​

使用randomWidth属性可以让骨架屏的宽度随机变化。

代码演示
展开代码

动态加载 ​

使用loading属性可以控制骨架屏的显示状态。

代码演示
展开代码

延迟显示 ​

使用throttle属性可以设置骨架屏显示的延迟时间。

代码演示
展开代码

主题样式 ​

使用theme属性可以设置骨架屏的主题。

代码演示
展开代码

API 参考 ​

Skeleton Props ​

参数说明类型可选值默认值
loading是否显示骨架屏boolean—true
count占位行数number—3
randomWidth占位宽度是否随机boolean | string—false
throttle显示延迟时间(毫秒)number—0
theme主题样式string'light' | 'dark''light'

SkeletonItem Props ​

参数说明类型可选值默认值
variant展示样式stringtext | circle | rect'text'
width指定宽度number | string—'100%'
height指定高度number | string—16

Skeleton Slots ​

名称说明
default实际内容
template自定义骨架屏模板

类型定义 ​

typescript
interface SkeletonProps {
  loading?: boolean;
  animated?: boolean;
  count?: number;
  randomWidth?: boolean | string;
  throttle?: number;
  theme?: 'light' | 'dark';
}

interface SkeletonItemProps {
  variant?: 'text' | 'circle' | 'rect';
  width?: number | string;
  height?: number | string;
}

基于 MIT 协议