Skip to content

分段控件

SegmentedControl Props ​

名称类型默认值说明
modelValuestring-当前选中分段的取值,必填,支持 v-model。与它相等的那个分段就是选中项。
labelstring-单选组的无障碍名称,写入 aria-label,不在页面上渲染,必填。
sizeSegmentedControlSize'md'控件尺寸,决定每个分段的高度,可选 sm、md、lg。
layoutSegmentedControlLayout'hug'分段占用宽度的方式。hug 按内容取宽并受容器限制,标签过窄时截断;fill 让分段平均分摊容器宽度。
isDisabledbooleanfalse是否禁用整个控件。所有分段都不能被选择,控件退出 Tab 顺序。
disabledMessagestring-禁用原因,在悬停和键盘聚焦时以提示气泡显示。与 isDisabled 一起使用时,控件保持 aria-disabled 而不是完全不可聚焦,让原因能被键盘和辅助技术读到,选择仍然被阻止。请用它代替把禁用控件包进 Tooltip。

SegmentedControl 事件 ​

名称说明
update:modelValue选中项变化时触发,用于 v-model 的双向绑定。点击已经选中的分段不会触发。
change选中项变化时触发,适合在切换后执行加载数据等操作。

SegmentedControl Slots ​

名称说明
default放置 SegmentedControlItem 的默认插槽,顺序即分段的显示顺序。

SegmentedControlItem Props ​

名称类型默认值说明
valuestring-该分段的唯一取值,与控件的 v-model 比较,相等即为选中项,必填。
labelstring-分段名称,渲染为可见文字;隐藏标签时作为无障碍名称,必填。
isLabelHiddenbooleanfalse是否在视觉上隐藏标签,只显示图标。标签仍会写入 aria-label。
isDisabledbooleanfalse是否禁用这单独一个分段。它仍占据原来的位置,但不能被选择,方向键和 Tab 顺序都会跳过它。

SegmentedControlItem Slots ​

名称说明
icon显示在标签前的图标,通常是一个图标类或你自己的 SVG。它对辅助技术隐藏(分段自身已经提供了名称)。

原生属性 ​

根元素为 div,每个分段为 button。

以下内容传入根元素:

  • HTML 属性。
  • aria-* 属性(aria-label、aria-disabled、aria-describedby 由组件根据 label 和 isDisabled 推导,不可覆盖)。
  • data-* 属性。
  • class。
  • style。

SegmentedControlItem 上的 class 会与组件自身的类名合并。role、aria-checked、aria-disabled、aria-label、tabindex 和 data-value 由组件计算(aria-label 只在 isLabelHidden 时写入 label),并覆盖同名的原生属性。