# Skeleton スケルトン

内容の読み込み中のプレースホルダーです。LhSkeleton は複合的なプレースホルダー(アバター + テキスト行)を、LhSkeletonItem は形状を自由に組み合わせて構成します。

スケルトン
<template>
  <div class="demo-col">
    <div class="demo-row" style="gap: 24px; align-items: flex-start; flex-wrap: wrap">
      <div style="width: 260px">
        <p class="demo-note">avatar + rows + animated</p>
        <LhSkeleton :loading="loading" :rows="3" avatar animated>
          <div>
            <strong>溪山行旅図</strong>
            <p>範寛・北宋。雨点皴で山石を描き、気迫に満ちています。</p>
          </div>
        </LhSkeleton>
      </div>
      <div style="width: 260px">
        <p class="demo-note">SkeletonItem で形状を自由に組み合わせ</p>
        <LhSkeletonItem variant="rect" style="width: 100%; height: 120px" animated />
        <LhSkeletonItem variant="text" style="margin-top: 12px" animated />
        <div class="demo-row" style="gap: 12px; margin-top: 12px">
          <LhSkeletonItem variant="circle" style="width: 40px; height: 40px" animated />
          <LhSkeletonItem variant="text" style="flex: 1" animated />
        </div>
      </div>
    </div>
    <p class="demo-note">loading=false のときに実際の内容をレンダリング</p>
    <LhSkeleton :loading="false" :rows="2">
      <p>これは実際の内容です。loading をオフにすると、スケルトンがスロットに道を譲ります。</p>
    </LhSkeleton>
    <LhButton size="small" style="margin-top: 12px" @click="toggle">
      {{ loading ? '読み込み状態をオフ' : '再読み込み' }}
    </LhButton>
  </div>
</template>

<script>
export default {
  data: () => ({
    loading: true,
  }),
  methods: {
    toggle() {
      this.loading = !this.loading
    },
  },
}
</script>

# Skeleton Props

プロパティ 説明 型 デフォルト値
loading 読み込み状態かどうか(false のとき default スロットの実際の内容をレンダリング) boolean false
rows テキストの行数 number —
avatar 円形アバターのプレースホルダーを含めるかどうか boolean false
animated アニメーションを有効にするかどうか boolean false
sx sx によるレイアウト省略記法 — —

# SkeletonItem Props

プロパティ 説明 型 デフォルト値
variant プレースホルダーブロックの形状 'text' \| 'rect' \| 'circle' 'text'
animated アニメーションを有効にするかどうか boolean false
sx sx によるレイアウト省略記法 — —

# Slots

LhSkeleton のデフォルトスロット:loading=false のときにレンダリングされる実際の内容です。

Copyright © 2024-2026 FengMo WenXue