--- name: arco-vue-menu description: "Arco Design Vue 菜单 Menu 组件参考。用于 Vue 3、`@arco-design/web-vue`、``、属性、事件、插槽、示例和实现细节。" user-invocable: false --- # 菜单 Menu ## 简介 设置 `mode` 为 `horizontal` 时,使用水平菜单。 ## 基本用法 ```vue ``` ## API ### `` 属性 |参数名|描述|类型|默认值|版本| |---|---|---|:---:|:---| |theme|菜单的主题|`'light' \| 'dark'`|`'light'`|| |mode|菜单的模式|`'vertical' \| 'horizontal' \| 'pop' \| 'popButton'`|`'vertical'`|| |level-indent|层级之间的缩进量|`number`|`-`|| |auto-open|默认展开所有多级菜单|`boolean`|`false`|| |collapsed **(v-model)**|是否折叠菜单|`boolean`|`-`|| |default-collapsed|默认是否折叠菜单|`boolean`|`false`|| |collapsed-width|折叠菜单宽度|`number`|`-`|| |accordion|开启手风琴效果|`boolean`|`false`|| |auto-scroll-into-view|是否自动滚动选中项目到可见区域|`boolean`|`false`|| |show-collapse-button|是否内置折叠按钮|`boolean`|`false`|| |selected-keys **(v-model)**|选中的菜单项 key 数组|`string[]`|`-`|| |default-selected-keys|默认选中的菜单项 key 数组|`string[]`|`[]`|| > 仅列出常用项,低频属性按需查阅官方 API。 ### `` 事件 |事件名|描述|参数| |---|---|---| |collapse|折叠状态改变时触发|collapsed: `boolean`
type: `'clickTrigger'\|'responsive'`| |menu-item-click|点击菜单项时触发|key: `string`| |sub-menu-click|点击子菜单时触发|key: `string`
openKeys: `string[]`| ### `` 插槽 |插槽名|描述|参数| |---|:---:|---| |collapse-icon|折叠图标|collapsed: `boolean`| |expand-icon-right|向右展开的图标|-| |expand-icon-down|向下展开的图标|-| ### `` 属性 |参数名|描述|类型|默认值|版本| |---|---|---|:---:|:---| |title|子菜单的标题|`string`|`-`|| |selectable|弹出模式下,是否将多级菜单头也作为一个菜单项,支持点击选中等状态|`boolean`|`false`|| |popup|是否强制使用弹出模式,`level` 表示当前子菜单的层级|`boolean \| ((level: number) => boolean)`|`false`|| |popup-max-height|弹出框的最大高度|`boolean \| number`|`true`|2.23.0| ### `` 插槽 |插槽名|描述|参数|版本| |---|:---:|---|:---| |title|标题|-|| |expand-icon-right|向右展开的图标|-|| |expand-icon-down|向下展开的图标|-|| |icon|菜单的图标|-|2.11.0| ### `` 属性 |参数名|描述|类型|默认值| |---|---|---|:---:| |title|菜单组的标题|`string`|`-`| ### `` 插槽 |插槽名|描述|参数| |---|:---:|---| |title|标题|-| ### `` 属性 |参数名|描述|类型|默认值| |---|---|---|:---:| |disabled|是否禁用|`boolean`|`false`| ### `` 插槽 |插槽名|描述|参数|版本| |---|:---:|---|:---| |icon|菜单的图标|-|2.11.0| ## 常用模式 - **顶部导航菜单**:设置 `mode` 为 `horizontal` 时,使用水平菜单。 - **深色模式导航**:通过 `theme` 指定主题,分为 `light` 和 `dark` 两种。 - **缩起内嵌菜单**:通过 `collapsed` 来指定菜单收起。 - **响应式收缩**:设置 `breakpoint` 可触发响应式收缩。 - **内嵌菜单**:菜单内可以嵌入多个子项,通过 `openKeys` 可以设置默认打开的子项。 - **不同大小菜单**:通过 `style` 自由指定菜单的宽度和菜单项的高度。 - **悬浮菜单**:指定 `mode` 为 `pop` 可以使用悬浮菜单。 - **悬浮按钮菜单**:指定 `mode` 为 `popButton` 使用按钮组样式的悬浮菜单。 ## 最佳实践 - 新代码优先使用 Vue 3、Composition API 和 `