项目正在快速迭代中,API 与视觉细节可能随版本调整,请勿用于生产环境。
仅桌面端保证样式

ContextMenu 右键菜单 ​

在光标处弹出的上下文菜单:默认插槽包裹触发区域,区域内右键即弹出(自动阻止浏览器默认菜单);items 配置驱动菜单内容,也可命令式调用按目标切换菜单,弹层 Teleport 至 body、视口边缘自动翻转钳位。

基础用法 ​

把需要响应右键的内容写入默认插槽,菜单项通过 items 配置:label 文本、icon 图标、command 指令值(支持字符串、数字、对象等任意类型),点击菜单项抛出 command 事件并自动收起。

右键此区域打开菜单

最近 command:右键菜单项试试

菜单项形态 ​

disabled 置灰禁点、divided 顶部分隔线、danger 标识删除类危险操作(红色,悬停不转主色)。

右键查看菜单项形态

子菜单 ​

菜单项带 children 数组即展开一级子菜单:悬停延时弹出、点击父项也可展开;子菜单默认挂在右侧,视口右侧放不下自动翻到左侧,纵向始终钳位在视口内。父项与子项共用同一个 command 事件。

右键打开带子菜单的菜单

命令式调用 ​

不写默认插槽时组件只是命令式引擎:通过模板 ref 调用 open,第一个参数传 MouseEvent 或 { x, y } 坐标点,第二个参数可传入临时 items 覆盖配置——同一个菜单实例即可服务多个目标,各自弹出各自的菜单。close 与 visible 程序化控制显隐,visible-change 监听开关。

右键:文件目标
右键:文件夹目标

API ​

ContextMenu Props

参数说明类型默认值
items菜单项配置数组MenuItem[][]
disabled禁用(区域右键与命令式 open 均不弹出)booleanfalse

MenuItem 配置项

参数说明类型默认值
label菜单项文本string—
icon图标名(registry)string—
command指令值,点击时随 command 事件抛出string | number | object—
disabled禁用当前项booleanfalse
divided显示顶部分隔线booleanfalse
danger危险操作(红色标识)booleanfalse
children一级子菜单(同 MenuItem 结构)MenuItem[]—

ContextMenu Events

参数说明类型默认值
command菜单项点击(含子菜单项,抛出后自动关闭)(command) => void—
visible-change浮层显隐变化(visible: boolean) => void—

ContextMenu Slots

参数说明类型默认值
default触发区域(区域内右键弹出;不写则为纯命令式用法)——

ContextMenu Methods

参数说明类型默认值
open在指定位置弹出(传 MouseEvent 或 { x, y };第二参可传临时 items 覆盖)(target, itemsOverride?) => void—
close关闭浮层() => void—
visible显隐状态(ref)Ref<boolean>—