Skip to content

Dropdown 下拉菜单

点击触发后弹出的操作菜单组件,适用于动作选择、快捷操作等场景。支持键盘导航、分隔线、危险操作高亮。

何时使用:需要提供一组可选操作(右键菜单、更多操作)时使用。

基础用法

分隔线与危险操作

通过 separator: true 添加分隔线,danger: true 标记危险操作(红色高亮)。

弹出位置

通过 placement 控制菜单弹出方向,支持9个方位。

受控模式

使用 v-model:open 控制菜单的展开/收起状态。

尺寸

通过 size 控制菜单尺寸。

禁用状态

设置 disabled 后,点击触发区不会弹出菜单。

键盘导航

完全支持键盘操作,符合 WAI-ARIA Menu 模式:

按键行为
在菜单项间移动高亮
Home跳转到第一个可选项
End跳转到最后一个可选项
Enter / Space选中当前高亮项
Escape关闭菜单
首字符输入快速跳转到匹配项(TypeAhead)

API

Props

属性类型默认值说明
optionsDropdownOption[][]菜单项列表
placementDropdownPlacement'bottom-start'弹出位置
size'sm' | 'md' | 'lg''md'菜单尺寸
disabledbooleanfalse是否禁用
ariaLabelstring''弹出层的无障碍标签

v-model

属性类型说明
openboolean菜单展开状态(受控模式)

Events

事件参数说明
select(key: string, option: DropdownOption)选中菜单项时触发
open菜单展开时触发
close菜单关闭时触发

Slots

名称说明
default触发元素
item自定义菜单项渲染
属性类型说明
keystring唯一标识(选中时传出)
labelstring显示文本
iconstring图标(emoji 或字符串)
disabledboolean是否禁用
dangerboolean是否为危险操作(红色)
separatorboolean是否为分隔线

注意事项

  • Dropdown 适用于操作菜单(点击后执行动作),若需值选择请使用 Select
  • 支持 placement-start / -end 后缀控制对齐方式(如 bottom-start 左对齐)
  • 菜单通过 Teleport 挂载到 body,避免被父容器裁剪
  • 全组件 SSR 安全,键盘导航和 ARIA 属性完整支持

Released under the MIT License