Skip to content

Segmented 分段器 ​

单选的线性分段选择器,用于轻度筛选 / 切换视图,role="radiogroup",可禁用单项。选中态指示器带滑动过渡动画。

基础用法 ​

基础用法

默认选中 ​

受控 value

禁用单项 ​

禁用选项

尺寸 ​

size 支持 small / medium(默认)/ large 三档(对齐输入类控件的尺寸体系;就近跟随 config-provider 的 size 注入):

尺寸

铺满 ​

block 铺满父宽,选项等分:

block 铺满

图标选项 ​

选项的 icon 字段(oas-icons 图标名)渲染在文本前;label 省略时为仅图标形态,图标名自动转可读文本作 aria-label 兜底:

图标选项

仅图标

纵向 ​

direction="vertical" 纵向排列(侧边工具条等场景);键盘导航随之切换为 ↑ / ↓:

纵向

只读 ​

readonly 可聚焦不可改选(与 disabled 的表单语义分立:值只读展示):

readonly

自定义选项渲染 ​

template[slot="option"] 克隆渲染每个选项(data-option-label 元素绑定选项文本,对齐 select 的 option slot 惯例):

option slot

键盘与无障碍 ​

底层为隐藏的原生 radio 组(input[type="radio"],同名成组):Tab 聚焦当前选中项,← / →(纵向 ↑ / ↓)循环切换并跳过禁用项,Home / End 跳转首尾;焦点(roving tabindex)随选中项移动。设置 name 属性时作为内层 radio 组名(未设置时组件自动生成组名,多实例互不干扰)——组件非 form-associated,shadow 内的 radio 不被外层 form 收集提交,name 仅用于组内互斥与键盘语义。

切换事件 ​

oas-change 事件

当前选中:chart

API ​

oas-segmented ​

属性 ​

属性说明类型默认值
block铺满父容器(各项等宽均分)——
direction排列方向:horizontal(默认)/ vertical(联动 aria-orientation 与轴向键)stringhorizontal
disabled禁用整个分段控件(自身显式禁用,或经 config-provider 全局禁用注入继承)boolean—
name内层原生 radio 组名(未设自动生成唯一名,多实例互不干扰);仅用于组内互斥与键盘语义——组件非 form-associated,shadow 内 radio 不被外层 form 收集提交string—
options[{ label, value, disabled? }] JSON 字符串string[]
readonly只读:可聚焦不可改选(radiogroup aria-readonly)boolean—
size尺寸档位 small / medium(默认)/ largestringmedium
value选中值(缺省选第一项,受控属性)string—

Property(JS property;是否写回 attribute 见各行说明) ​

Property说明类型默认值
value当前值:选中项值字符串string—

事件 ​

事件说明
oas-change切换,detail: { value }

插槽 ​

名称说明
template[slot="option"]选项自定义模板(<template slot="option">)

容器 role="radiogroup";每项为原生 <input type="radio"> 底座(label 自身无 role / aria-checked,选中态与可访问名由内部原生 radio 承载;aria-disabled 状态属性保留)。

基于 MIT OR Apache-2.0 双许可发布