# Switch スイッチ
オン / オフを切り替えるスイッチです。active/inactive のテキスト、loading と disabled をサポートし、クリックおよび Enter/Space キーで切り替えられます。
スイッチ
<template>
<div class="demo-col" style="gap: 20px">
<div class="demo-row" style="gap: 24px; flex-wrap: wrap">
<LhSwitch v-model="on" active-text="夜モード" inactive-text="昼モード" name="theme" />
<LhSwitch v-model="loading" loading />
<LhSwitch v-model="on2" disabled />
</div>
<div class="demo-row" style="gap: 24px; flex-wrap: wrap; align-items: center">
<LhSwitch v-model="s" size="small" active-text="小" />
<LhSwitch v-model="m" size="medium" active-text="中" />
<LhSwitch v-model="l" size="large" active-text="大" />
</div>
<p class="demo-note">loading 状態ではクリックが無効になりローディングサークルが表示されます。name はネイティブ input に透過されます。</p>
</div>
</template>
<script>
export default {
data: () => ({ on: true, on2: false, loading: true, s: true, m: true, l: false }),
}
</script>
# Props
| プロパティ | 説明 | 型 | デフォルト値 |
|---|---|---|---|
| v-model | スイッチの状態(model: modelValue/input) | boolean | false |
| activeText / inactiveText | 両側のテキスト | string | '' |
| loading | 読み込み中(クリック無効 + サークル) | boolean | false |
| disabled | 無効 | boolean | false |
| size | サイズ | 'small' \| 'medium' \| 'large' | 'medium' |
| name | ネイティブ name | string | '' |
# Events
| イベント | 説明 | コールバックパラメータ |
|---|---|---|
| input | v-model のイベント | — |
| change | スイッチの状態が変化したときに発火 | (value) |
# アクセシビリティ
ルート要素は role="switch" + aria-checked/disabled です。LhFormItem 内でバリデーションに失敗した場合、aria-invalid が付与されます。
Copyright © 2024-2026 FengMo WenXue