# Segmented セグメント選択

セグメントコントローラーです。オプションは文字列による簡易記法と { value, label, disabled } オブジェクト記法をサポートし、block でコンテナの幅いっぱいに広げられます。

セグメント選択
<template>
  <div class="demo-col" style="gap: 20px">
    <LhSegmented v-model="view" :options="['リスト', 'グリッド', '画冊']" />
    <p class="demo-note">文字列配列の簡易記法:{{ view }}</p>
    <LhSegmented v-model="dynasty" :options="options" />
    <p class="demo-note">オブジェクト記法(disabled 項を含む):{{ dynasty }}</p>
    <LhSegmented v-model="view" :options="['リスト', 'グリッド', '画冊']" disabled />
    <LhSegmented v-model="view" :options="['リスト', 'グリッド', '画冊']" block />
    <p class="demo-note">block でコンテナの幅いっぱいに広げます</p>
  </div>
</template>

<script>
export default {
  data: () => ({
    view: 'リスト',
    dynasty: 'tang',
    options: [
      { value: 'tang', label: '唐' },
      { value: 'song', label: '宋' },
      { value: 'yuan', label: '元' },
      { value: 'ming', label: '明', disabled: true },
    ],
  }),
}
</script>

# Props

プロパティ 説明 型 デフォルト値
v-model 現在の値(model: modelValue/input) string \| number —
options オプション(文字列またはオブジェクト、必須) (string \| number \| { value, label, disabled? })[] —
disabled 全体を無効化 boolean false
block コンテナの幅いっぱいに広げる boolean false
sx sx によるレイアウト省略記法 — —

# Events

input(v-model、パラメータ (val))、change (val)。

# アクセシビリティ

ルート要素は role="radiogroup"、各項目は role="radio" + aria-checked です。キーボードの ←/→ で切り替えます。

Copyright © 2024-2026 FengMo WenXue