参考
菜单 Menu
Menu:菜单。安静的纸质浮层带 elevation,行在悬停时出现光照,选中项使用墨色平铺填充。部件:Root、Trigger、ContextTrigger、Indicator、Positioner、Content、Item、ItemText、ItemIndicator、ItemGroup、ItemGroupLabel、TriggerItem、Separator、Arrow、ArrowTip。Ark 的 namespace 已冻结;展开 namespace 时会把成员复制成 data properties,使 Root 可以承担尺寸包装,Content 承担档位,其余仍使用 Ark 自身部件。
Arrow · ArrowTip · Content · ContextTrigger · Indicator · Item · ItemGroup · ItemGroupLabel · ItemIndicator · ItemText · Positioner · Separator · Trigger · TriggerItem
#ArrowTip
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#Arrow
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#CheckboxItem
| 事件 | 载荷 |
|---|---|
update:checked | value: boolean |
#Content
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#ContextTrigger
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#Indicator
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#ItemContext
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#ItemGroupLabel
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#ItemGroup
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#ItemIndicator
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#ItemText
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#Item
| 属性 | 类型 | 默认值 | 描述 |
|---|---|---|---|
closeOnSelect | boolean | undefined | 选中选项后是否关闭菜单 | |
disabled | boolean | undefined | 是否禁用菜单项 | |
value | string | 菜单项的唯一值 | |
valueText | string | undefined | 选项的文本值,用于菜单输入即查找;未设置时使用菜单项的文本内容 |
| 事件 | 载荷 |
|---|---|
select | — |
#Positioner
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#RadioItemGroup
| 属性 | 类型 | 默认值 | 描述 |
|---|---|---|---|
id | string | — | |
modelValue | string | — |
| 事件 | 载荷 |
|---|---|
update:modelValue | value: string |
#RadioItem
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#Root
| 属性 | 类型 | 默认值 | 描述 |
|---|---|---|---|
size | String as PropType<"sm" | "md" | "lg"> | "md" | 菜单各行的控件高度档位 |
anchorPoint | menu.Point | 菜单定位点;可由上下文菜单触发器或按钮触发器设置 | |
aria-label | string | 菜单的无障碍标签 | |
closeOnSelect | boolean | true | 选中选项时是否关闭菜单 |
composite | boolean | true | 菜单是否与组合框、标签页等复合组件组合使用 |
defaultHighlightedValue | string | 菜单项的初始高亮值;适合不需要受控高亮值的场景 | |
defaultOpen | boolean | 菜单的初始展开状态;适合不需要受控展开状态的场景 | |
defaultTriggerValue | string | null | 触发器的初始值;适合不需要受控触发器值的场景 | |
highlightedValue | string | 菜单项的受控高亮值 | |
id | string | 组件内部状态机的唯一标识 | |
ids | Partial<{ trigger: string; contextTrigger: string; content: string; groupLabel(id: string): string; group(id: string): string; positioner: string; arrow: string; }> | 菜单各元素的 id,便于组合使用 | |
loopFocus | boolean | false | 键盘导航是否循环 |
navigate | (details: menu.NavigateDetails) => void | 选中项为锚点元素时用于导航到该项的函数 | |
open | boolean | 菜单的受控展开状态 | |
positioning | menu.PositioningOptions | 用于动态定位菜单的选项 | |
triggerValue | string | null | 当前打开菜单的触发器值 | |
typeahead | boolean | true | 按下可打印字符时是否触发输入即查找导航 |
| 事件 | 载荷 |
|---|---|
select | details: SelectionDetails |
exitComplete | — |
openChange | details: OpenChangeDetails |
update:open | open: boolean |
triggerValueChange | details: TriggerValueChangeDetails |
update:triggerValue | triggerValue: string | null |
focusOutside | event: FocusOutsideEvent |
interactOutside | event: InteractOutsideEvent |
pointerDownOutside | event: PointerDownOutsideEvent |
highlightChange | details: HighlightChangeDetails |
update:highlightedValue | highlightedValue: string | null |
escapeKeyDown | event: KeyboardEvent |
requestDismiss | event: CustomEvent<{ originalLayer: HTMLElement; targetLayer: HTMLElement | undefined; originalIndex: number; targetIndex: number; }> |
#Separator
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#TriggerItem
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#Trigger
| 属性 | 类型 | 默认值 | 描述 |
|---|---|---|---|
value | string | 用于标识该触发器的值 |