Skip to content

Skeleton 骨架屏 - Vant 4

Skeleton スケルトン

読み込み中のプレースホルダー表示。

基本的な使い方

データの読み込み中にスケルトン画面を表示します。

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

コードデモ

基本的な使い方

html
<van-skeleton />

アニメーション表示

html
<van-skeleton animated />

タイトル表示

html
<van-skeleton title />

行数表示

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

タイトルと行の組み合わせ

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

アバター表示

html
<van-skeleton avatar />

スロットコンテンツ

html
<van-skeleton>
  <template #template>
    <div>カスタムスケルトン</div>
  </template>
</van-skeleton>

ローディング制御

html
<template>
  <div>
    <van-skeleton :loading="loading" animated>
      <template #template>
        <div>読み込み中...</div>
      </template>
      <div>実際のコンテンツ</div>
    </van-skeleton>
    <van-button @click="toggleLoading">ローディング切り替え</van-button>
  </div>
</template>

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

export default {
  setup() {
    const loading = ref(true);
    
    const toggleLoading = () => {
      loading.value = !loading.value;
    };
    
    return {
      loading,
      toggleLoading,
    };
  },
};
</script>

カードのスケルトン

html
<template>
  <van-card>
    <template #title>
      <van-skeleton title :row="2" />
    </template>
    <template #desc>
      <van-skeleton :row="3" />
    </template>
  </van-card>
</template>

リストのスケルトン

html
<template>
  <div>
    <van-skeleton v-for="i in 3" :key="i" title :row="2" style="margin-bottom: 16px;" />
  </div>
</template>

📋 API

🎛️ プロパティ

パラメータ説明タイプデフォルト値
loadingスケルトンを表示するかどうかbooleantrue
animatedアニメーションを有効にするかどうかbooleanfalse
avatarアバターを表示するかどうかbooleanfalse
avatar-shapeアバターの形状、オプション値は roundsquarestringround
avatar-sizeアバターのサイズnumber | string32px
titleタイトルを表示するかどうかbooleanfalse
title-widthタイトルの幅number | string40%
row段落の行数number0
row-width段落の行の幅number | string | Array100%
round丸みを帯びたスタイルを有効にするかどうかbooleanfalse

🎭 スロット

名称説明
default実際のコンテンツ
templateカスタムスケルトンテンプレート

🎨 スタイル変数

コンポーネントは以下のCSS変数を提供し、カスタマイズに使用できます。使用方法については ConfigProviderコンポーネントを参照してください。

変数名デフォルト値説明
--van-skeleton-avatar-size32pxアバターのサイズ
--van-skeleton-title-height16pxタイトルの高さ
--van-skeleton-title-width40%タイトルの幅
--van-skeleton-row-height16px行の高さ
--van-skeleton-row-margin-topvar(--van-padding-sm)行の上マージン
--van-skeleton-animation-duration1.2sアニメーションの継続時間
--van-skeleton-round-border-radiusvar(--van-radius-lg)丸みを帯びたスタイルの境界線の半径

📘 タイプ定義

コンポーネントは以下のタイプ定義をエクスポートし、TypeScriptプロジェクトでの使用に便利です:

ts
import type { SkeletonProps, SkeletonAvatarShape } from 'vant';

🎨 テーマカスタマイゼ

🎭 スタイル変数

コンポーネントは以下のCSS変数を提供し、カスタマイズに使用できます。使用方法については ConfigProviderコンポーネントを参照してください。

Vant に基づく企業向けモバイルソリューション