Skip to content

Menu 菜单

独立的菜单列表,支持选中态与键盘导航。

基础用法

基础用法

默认选中

默认选中(value 回显)

禁用项

禁用项

多级子菜单

children 的菜单项显示展开箭头(›),点击或悬停展开子菜单,子菜单缩进展示;键盘 ArrowRight 进入、ArrowLeft 返回。

多级子菜单

尚未选择

水平导航

mode="horizontal" 时菜单项横排,呈顶部导航条样式;一级子菜单向下浮出,二级及以上仍向右浮出。

水平导航(顶部导航条样式)

尚未选择

收起态

collapsed(仅 vertical 生效)将菜单收窄为只显示图标,悬停或点击图标项时子菜单向右浮出,子菜单内仍为完整菜单。

收起态(只显示图标)

尚未选择

分组

type: "group" 的菜单项渲染为带组标题的分区(组标题小字、次要色、不可点),组内子项平铺在同一层,可继续混入子菜单与分隔线。

分组

带图标

icon 使用 @oas-isui/icons 的图标名(iconRegistry),以内联 SVG 渲染在文字左侧。

带图标

分隔线

type: "divider" 渲染一条细分隔线,不可点、不参与键盘导航。

分隔线

暗色菜单

theme="dark" 使菜单局部使用暗色 token(深背景 + 浅文字),独立于全局主题;不设置时跟随全局主题。

暗色菜单

选择事件

选择事件

尚未选择

API

属性

属性说明类型默认值
collapsed收起态(仅 vertical):只显示图标,子菜单向右浮出
items菜单项 JSONstring[]
mode布局模式:vertical 纵向菜单 / horizontal 顶部导航条
theme局部主题:dark 使用暗色 token(独立于全局主题)
value当前选中值string

事件

事件说明
oas-select选择某项,detail: { value }

MenuItem 字段:

字段说明类型
label菜单项文字string
value选中值string
type菜单项类型:item(默认)/ group(分组标题)/ divider(分隔线)string
icon图标名(@oas-isui/icons 的 iconRegistry 键)string
disabled禁用该项boolean
children子菜单项数组,结构与父项一致(可继续嵌套)MenuItem[]

children 为可选子菜单项数组;有 children 的项点击/悬停展开子菜单,选中态只落在叶子项。groupchildren 平铺展示在同一层,组标题不可点、不参与键盘导航;divider 不可点、不参与键盘导航。

键盘导航:方向键移动(自动跳过组标题与分隔线)、Enter 选择(含子菜单的项 Enter/ArrowRight 进入)、Home / End 跳转、ArrowLeft 返回父级;role="menu" + menuitemradio(子菜单父项为 menuitem),选中项显示对勾。