Skip to content

Sidebar サイドバー - Vant 4

📚 Sidebar サイドバー

🎯 紹介

ページの側面にグループ化されたナビゲーションリストを表示するコンポーネントです。選択項目の双方向バインディング、バッジ表示、無効状態をサポートし、商品分類や設定メニューなどのシーンで使用されます。

📦 導入

以下の方法でコンポーネントをグローバル登録します。詳細はコンポーネント登録を参照してください。

js
import { createApp } from'vue'; import { Sidebar, SidebarItem } from'vant'; const app = createApp(); app.use(Sidebar); app.use(SidebarItem);

🎯 コード例

🔧 基本用法

v-model で現在の選択インデックスをバインドし、選択状態を管理します。

html
<template>
  <van-sidebar v-model="active">
    <van-sidebar-item title="ラベル名" />
    <van-sidebar-item title="ラベル名" />
    <van-sidebar-item title="ラベル名" />
  </van-sidebar>
</template>

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

export default {
  setup() {
    const active = ref(0);
    return { active };
  },
};
</script>

🏷️ バッジ表示

dot 属性で右上に赤いドットを表示、badge 属性で右上に数値バッジを表示できます。重要情報をひと目で伝えます。

html
<template>
  <van-sidebar v-model="active">
    <van-sidebar-item title="ラベル名" dot />
    <van-sidebar-item title="ラベル名" badge="5" />
    <van-sidebar-item title="ラベル名" badge="20" />
  </van-sidebar>
</template>

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

export default {
  setup() {
    const active = ref(0);
    return { active };
  },
};
</script>

🚫 無効な項目

disabled 属性で項目を無効化できます。グレー表示でクリック不可を明確にします。

html
<template>
  <van-sidebar v-model="active">
    <van-sidebar-item title="タブ名" />
    <van-sidebar-item title="タブ名" disabled />
    <van-sidebar-item title="タブ名" />
  </van-sidebar>
</template>

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

export default {
  setup() {
    const active = ref(0);
    return { active };
  },
};
</script>

🔔 切り替えイベントの監視

change イベントでナビゲーション切り替えを監視し、リッチなインタラクションを実現します。

html
<template>
  <van-sidebar v-model="active" @change="onChange">
    <van-sidebar-item title="标签名称" />
    <van-sidebar-item title="标签名称" />
    <van-sidebar-item title="标签名称" />
  </van-sidebar>
</template>

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

export default {
  setup() {
    const active = ref(0);
    const onChange = (index) => showToast(`タブ ${index + 1}に切り替え`);
    return { active, onChange };
  },
};
</script>

📋 API

🎛️ Sidebar Props

属性名説明デフォルト
v-model🎯 現在の選択インデックスnumber0
disabled🚫 全ての項目を無効化するかbooleanfalse

🎪 Sidebar Events

イベント名説明コールバック引数
change🔄 ナビゲーション項目の切り替え時に発火index: number

🎨 SidebarItem Props

属性名説明デフォルト
title📝 ナビゲーション項目のタイトルstring''
dot🔴 右上に赤いドットを表示するかbooleanfalse
badge🏷️ 右上のバッジコンテンツnumber | string-
badge-props⚙️ カスタムバッジのプロパティ(Badge の props を透過)BadgeProps-
disabled🚫 この項目を無効化するかbooleanfalse
url🔗 クリック後に遷移する URLstring-
to🧭 クリック後の遷移ルート(Vue Router の to と同等)string | object-
replace🔄 遷移時に現在の履歴を置き換えるかbooleanfalse

🎪 SidebarItem Events

イベント名説明コールバック引数
click👆 クリック時に発火index: number

🎭 SidebarItem Slots

名称説明
title🎨 カスタムタイトルコンテンツ

📘 タイプ定義

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

ts
import type { SidebarProps, SidebarItemProps } from 'vant';

🎨 テーマカスタマイズ

🎛️ スタイル変数

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

名称デフォルト値説明
--van-sidebar-width80px📏 サイドバーの幅
--van-sidebar-font-sizevar(--van-font-size-md)📝 文字サイズ
--van-sidebar-line-heightvar(--van-line-height-md)📏 文字の行の高さ
--van-sidebar-text-colorvar(--van-text-color)🎨 文字色
--van-sidebar-disabled-text-colorvar(--van-text-color-3)🎨 無効状態の文字色
--van-sidebar-padding20px 12px📏 内側余白
--van-sidebar-active-colorvar(--van-active-color)🎨 アクティブ状態の背景色
--van-sidebar-background-colorvar(--van-background-color)🎨 背景色
--van-sidebar-selected-font-weightvar(--van-font-weight-bold)📝 選択項目の文字の太さ
--van-sidebar-selected-text-colorvar(--van-text-color)🎨 選択項目の文字色
--van-sidebar-selected-border-width3px📏 選択項目の枠線の幅
--van-sidebar-selected-border-colorvar(--van-danger-color)🎨 選択項目の枠線の色
--van-sidebar-selected-background-colorvar(--van-background-color-light)🎨 選択項目の背景色

📚 関連ドキュメント

🧭 ナビゲーションコンポーネント

  • Tab タブ - 📑 水平タブナビゲーション。コンテンツ切り替えに最適
  • Tabbar タブバー - 📱 下部タブバー。モバイルの主要ナビゲーションに最適
  • TreeSelect ツリーセレクト - 🌳 ツリー型分類セレクター。複数レベルの分類表示をサポート

🎨 表示コンポーネント

  • Badge バッジ - 🏷️ ナビゲーション項目に数値や状態を表示
  • Cell セル - 📱 リスト項目コンポーネント。カスタムナビゲーションに利用
  • Icon アイコン - 🎨 豊富なアイコンで視覚的識別を提供

🔧 ツールコンポーネント

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