# 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 레이아웃 단축 속성 | — | — |
# 이벤트
input(v-model, 매개변수 (val)), change (val).
# 접근성
루트 요소는 role="radiogroup", 각 항목은 role="radio" + aria-checked이며, 키보드 ←/→로 전환합니다.
Copyright © 2024-2026 FengMo WenXue