# Sélecteur segmenté

Contrôle segmenté. Les options s'écrivent sous forme de chaînes (syntaxe raccourcie) ou d'objets { value, label, disabled } ; block permet d'occuper toute la largeur du conteneur.

Sélecteur segmenté
<template>
  <div class="demo-col" style="gap: 20px">
    <LhSegmented v-model="view" :options="['Liste', 'Grille', 'Galerie']" />
    <p class="demo-note">Syntaxe raccourcie par tableau de chaînes : {{ view }}</p>
    <LhSegmented v-model="dynasty" :options="options" />
    <p class="demo-note">Syntaxe en objets (avec un élément disabled) : {{ dynasty }}</p>
    <LhSegmented v-model="view" :options="['Liste', 'Grille', 'Galerie']" disabled />
    <LhSegmented v-model="view" :options="['Liste', 'Grille', 'Galerie']" block />
    <p class="demo-note">block : occupe toute la largeur du conteneur</p>
  </div>
</template>

<script>
export default {
  data: () => ({
    view: 'Liste',
    dynasty: 'tang',
    options: [
      { value: 'tang', label: 'Tang' },
      { value: 'song', label: 'Song' },
      { value: 'yuan', label: 'Yuan' },
      { value: 'ming', label: 'Ming', disabled: true },
    ],
  }),
}
</script>

# Props

Propriété Description Type Valeur par défaut
v-model Valeur actuelle (model : modelValue/input) string \| number —
options Options (chaînes ou objets, obligatoire) (string \| number \| { value, label, disabled? })[] —
disabled Désactive l'ensemble boolean false
block Occupe toute la largeur du conteneur boolean false
sx Raccourci de mise en page sx — —

# Events

input (v-model, paramètre (val)), change (val).

# Accessibilité

L'élément racine porte role="radiogroup", chaque élément role="radio" + aria-checked ; les flèches ←/→ du clavier permettent de basculer.

Copyright © 2024-2026 FengMo WenXue