Segmented 分段控制器
Segmented 分段控制器
分段控制器是一种用于在多个选项之间进行单选的控件,选中项会有滑块动画效果,类似 iOS 的分段选择器。
何时使用
- 需要在少量选项之间快速切换时。
- 选项数量固定且较少(通常 2-5 个)时。
- 用于视图切换、数据筛选等场景。
导入
代码演示
基础用法
对象选项
使用 SegmentedOption 对象配置每个选项,可设置 label、disabled 等属性。
数值选项
options 也支持数值类型。
带图标
通过 icon 属性为选项添加图标。
尺寸
三种尺寸:small、default、large。
圆角形状
设置 shape 为 round 显示为胶囊形。
撑满父容器
设置 block 为 true 使组件宽度撑满父容器,选项均分宽度。
禁用
disabled 禁用整个组件,也可在选项级别设置 disabled。
受控用法
通过 v-model 双向绑定,监听 change 事件。
自定义渲染
通过 default 插槽自定义选项内容,或通过 label 插槽自定义标签渲染。
API
Segmented Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| modelValue (v-model) | 当前选中值 | string | number | - |
| defaultValue | 默认选中值(非受控) | string | number | 第一项 |
| options | 选项列表 | (SegmentedOption | string | number)[] | [] |
| disabled | 是否禁用整个组件 | boolean | false |
| size | 尺寸 | 'small' | 'default' | 'large' | 'default' |
| block | 是否撑满父容器宽度 | boolean | false |
| shape | 形状 | 'default' | 'round' | 'default' |
| class | 附加类名 | string | - |
Segmented Events
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| change | 选中值变化回调 | (value: string | number) |
| update:modelValue | 选中值变化(v-model) | (value: string | number) |
Segmented Slots
| 插槽名 | 说明 | 参数 |
|---|---|---|
| default | 自定义选项内容(完全自定义) | { option: SegmentedOption, index: number } |
| label | 自定义标签渲染 | { option: SegmentedOption } |
SegmentedOption
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| value | 选项值(必填) | string | number | - |
| label | 选项文本 | string | VNode | - |
| disabled | 是否禁用 | boolean | false |
| icon | 图标 | VNode | - |
| payload | 附加数据 | any | - |
键盘操作
| 按键 | 说明 |
|---|---|
ArrowRight / ArrowDown | 切换到下一个选项 |
ArrowLeft / ArrowUp | 切换到上一个选项 |
Home | 切换到第一个选项 |
End | 切换到最后一个选项 |
