仅桌面端保证样式
Menu 导航菜单
移动端:多级菜单压平为底部标签栏 + 返回栏,参见 移动端 · 布局与导航壳。
后台系统的垂直 / 水平导航:菜单项点击激活高亮,子菜单在垂直模式 inline 展开、水平或折叠模式弹层浮出,支持分组、折叠、唯一展开与 router 模式跳转。
基础用法
通过 default-active 指定默认激活项(对应 menu-item 的 index),eb-sub-menu 包裹二级菜单,eb-menu-item-group 为菜单项分区。
水平模式
mode 设为 'horizontal' 渲染为顶栏:菜单项横排,激活项底部高亮,子菜单 hover 弹层浮出。
折叠模式
垂直菜单设 collapse 收窄为 64px 图标栏,子菜单转为右侧弹层;折叠后菜单项仅展示图标,需自备图标(子菜单同理,建议用图标替代文字标题)。运行时切换 collapse 后子菜单弹层方向会同步切换(展开向下、折叠向右)。
唯一展开与默认展开
unique-opened 保证同时只展开一个子菜单,展开新项时自动收起已展开项;default-openeds 传入 index 数组指定初始展开的子菜单。
router 模式与 select 事件
任意菜单项被点击都会触发根组件的 select 事件(参数为 index 与 indexPath 数组);开启 router 后由注入的 router 执行跳转(菜单项 route 属性可覆盖跳转目标,缺省用 index)。本站未接入路由,点击仅演示事件回传。
最近选中:点击菜单项试试
点击触发的弹层子菜单
menu-trigger 控制弹层子菜单(水平模式或折叠态垂直模式)的打开方式,默认 'hover',设为 'click' 后需点击标题才展开弹层。
API
Menu Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| mode | 模式 | vertical | horizontal | vertical |
| default-active | 默认激活菜单项的 index | string | |
| default-openeds | 默认展开的 sub-menu index 数组 | array | [] |
| collapse | 折叠为图标栏(仅垂直模式,折叠后子菜单转弹层) | boolean | false |
| unique-opened | 同时只展开一个子菜单 | boolean | false |
| menu-trigger | 弹层子菜单触发方式(水平 / 折叠态生效) | hover | click | hover |
| router | 路由模式:选中后用注入的 router 跳转(route 属性或缺省 index 作为目标) | boolean | false |
Menu Events
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| select | 菜单项被点击激活 | (index, indexPath) => void | — |
| open | 子菜单展开 | (index, openedMenus) => void | — |
| close | 子菜单收起 | (index, openedMenus) => void | — |
MenuItem Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| index | 唯一标识(必填),激活判定与 select 事件回传 | string | number | — |
| route | router 模式跳转目标(路由地址或 location 对象),缺省用 index | string | object | — |
| disabled | 禁用 | boolean | false |
SubMenu Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| index | 唯一标识(必填),展开态记录于根组件 openedMenus | string | number | — |
| title | 子菜单标题(title 插槽兜底) | string | |
| disabled | 禁用 | boolean | false |
| show-timeout / hide-timeout | 弹层展开 / 收起延时(hover 触发) | number | 150 / 300 |
| popper-class | 弹层自定义类名 | string |
MenuItemGroup Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| title | 分组标题(title 插槽兜底) | string |
Slots
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| default | Menu / SubMenu / MenuItemGroup 的菜单内容 | — | — |
| title | SubMenu / MenuItemGroup 的标题,缺省渲染 title 属性 | — | — |
| default(MenuItem) | 菜单项内容,可内嵌 eb-icon(折叠态仅展示图标) | — | — |