Skip to content

Skeleton 骨架屏

数据加载完成前的占位动效组件,提供 paragraph(段落)、card(图文卡片)与 avatar(包含头像)等预设形态,配备微光扫光扫过动画,有效提升应用加载体验。


代码示例

1. 基础段落骨架屏 (Paragraph Mode)

vue
<template>
  <mu-skeleton :loading="isLoading" title :rows="3">
    <!-- 数据加载完成后的实际内容 -->
    <view class="content">
      <text>实际渲染的数据标题与正文...</text>
    </view>
  </mu-skeleton>
</template>

<script setup>
import { ref } from 'vue'

const isLoading = ref(true)

setTimeout(() => {
  isLoading.value = false
}, 1500)
</script>

2. 带头像列表骨架屏 (Avatar List Mode)

设置 avatar 属性,并可通过 avatar-sizesm | md | lg)与 avatar-round 调节头像占位外观。

vue
<template>
  <mu-skeleton
    :loading="true"
    avatar
    avatar-size="lg"
    avatar-round
    title
    :rows="2"
  />
</template>

3. 商品/图文卡片骨架屏 (Card Mode)

设置 type="card" 即可渲染商品/瀑布流卡片占位形态。

vue
<template>
  <view class="card-grid">
    <mu-skeleton :loading="true" type="card" />
    <mu-skeleton :loading="true" type="card" />
  </view>
</template>

API 属性说明 (Props)

参数名说明类型可选值默认值
loading是否显示骨架屏(为 false 时自动展示默认 slot 插槽内容)Booleantrue | falsetrue
animate是否开启动画微光扫光效果Booleantrue | falsetrue
type骨架屏形态预设Stringparagraph (段落) | card (卡片)'paragraph'
avatar是否展示头像骨架Booleantrue | falsefalse
avatarSize头像尺寸Stringsm | md | lg'md'
avatarRound头像是否为圆形Booleantrue | falsetrue
title是否展示标题骨架行Booleantrue | falsetrue
titleWidth标题骨架行宽度String-'40%'
rows内容骨架行数Number | Array-3
rowsWidth各骨架行自定义宽度数组Array-[]

插槽说明 (Slots)

插槽名说明
defaultloadingfalse 时展示的真实页面内容插槽

基于 MIT 协议开源发行

H5 模拟器 (skeleton)☀️🔄