发布于2026-07-23 阅读(0)
扫一扫,手机访问
el-menu (容器) ├── el-menu-item (直接可点击的选项) ├── el-sub-menu (可展开的父菜单) │ ├── el-menu-item-group (分组容器,可选) │ │ ├── el-menu-item (分组内的选项) │ │ └── el-menu-item (分组内的选项) │ ├── el-menu-item (未分组的选项) │ └── el-sub-menu (嵌套子菜单,可无限级) └── el-menu-item (其他选项)在界面设计中,菜单系统往往是用户与功能交互的第一站。Element Plus 提供了一套完整的菜单组件体系,从容器到叶子节点,层层分明。这其中的核心组件,就是`el-menu`、`el-menu-item`、`el-sub-menu`和`el-menu-item-group`。它们之间的关系,从上图可以看得一清二楚:`el-menu`是总指挥官,`el-menu-item`是执行命令的士兵,`el-sub-menu`是带队的班长,而`el-menu-item-group`则像是班内的小组。
一个最简单的菜单容器,只需要指定`mode`和`default-active`就能跑起来。`mode`决定了菜单的排列方向——水平还是垂直,`default-active`则告诉组件默认该点亮哪个菜单项。
这组属性几乎覆盖了菜单容器的所有定制需求。值得注意的是`unique-opened`——当它设为`true`时,同一时间只能展开一个子菜单,这在层级较深的菜单中能有效避免信息过载。而`collapse`属性则常用于侧边栏的收起展开,实现从完整菜单到图标菜单的切换。:default-active="currentIndex" :unique-opened="true" :collapse="isCollapse" background-color="#545c64" text-color="#fff" active-text-color="#ffd04b" >
这里展示了三种常见形态:纯点击事件处理、结合路由跳转、以及禁用状态。通常在实际项目中,`el-menu-item`会与`vue-router`深度绑定——点击菜单项时进行页面跳转,而`index`值往往直接对应路由路径。禁用状态则用于那些暂时不可用的功能,比如“用户管理”虽然显示在菜单中,但当前用户没有权限访问。首页
关于我们
禁用项
index 属性必须唯一,用于标识和激活状态这个结构展示了`el-sub-menu`的典型嵌套方式。父菜单“系统管理”下既有直接子项“用户管理”,也有一个嵌套的子菜单“日志管理”,而“日志管理”下面又挂着“登录日志”。`#title`插槽是用来放置菜单标题内容的,包括图标和文字。系统管理
用户管理 日志管理 登录日志
除了标准的标题和子项,`el-sub-menu`还支持一些高级定制。比如在标题旁加一个徽标,用来提示未读消息数量;又或者自定义展开图标——默认的箭头图标可以通过`#icon`插槽替换成你想要的任何图标。消息中心
自定义
在这个例子中,“设置”菜单下有两个分组:“账户设置”和“系统设置”。每个分组都有自己的标题,分组内的项在视觉上被组织在一起。值得注意的是,分组之外还可以放置未分组的项——“帮助中心”就独立于两个分组之外,这在层级上是一种灵活的处理方式。设置 个人信息 安全设置 主题设置 通知设置 帮助中心
┌─────────────────┐ │ 账户设置 │ ← 分组标题 ├─────────────────┤ │ 个人信息 │ │ 安全设置 │ ├─────────────────┤ │ 系统设置 │ ← 分组标题 ├─────────────────┤ │ 主题设置 │ │ 通知设置 │ ├─────────────────┤ │ 帮助中心 │ ← 未分组项 └─────────────────┘这个示意图直观地展示了分组在视觉上的效果。分组标题会以分隔线的形式出现,分组的项与未分组的项之间也会有明显的间距分隔。这样的组织方式,在菜单项较多时能显著提升查找效率。
这个完整示例涵盖了所有组件类型。可以看到,`el-menu`作为根容器,内部混搭了直接菜单项`el-menu-item`和子菜单`el-sub-menu`,子菜单内部又进一步组合了直接子项、分组以及嵌套子菜单。这种灵活的组合方式,几乎可以应对任何导航场景。首页
文档中心
快速开始 安装指南 使用教程 组件API 方法参考 高级主题 性能优化 最佳实践 关于
| 场景 | 选择组件 | 说明 |
|---|---|---|
| 直接跳转/操作 | el-menu-item |
不需要下级菜单 |
| 有子选项 | el-sub-menu |
需要展开显示子项 |
| 子项需要分类 | el-menu-item-group + el-menu-item |
视觉上分组 |
| 多级嵌套 | el-sub-menu 嵌套 |
无限层级 |
| 只是容器 | el-menu |
最外层容器 |
1-2-1在实际项目中,菜单和路由的结合几乎是标配。把`router`属性设为`true`,`index`直接映射为路由路径,点击菜单项时自动触发页面跳转,同时菜单也能根据当前路由路径自动高亮。有几点心得值得分享:层级最好控制在三层以内,否则用户会迷失;当子项超过五个时,考虑用分组来组织;索引命名建议采用层级式(如`2-3-1`),这样在维护时能快速定位。移动端对小屏幕尤其不友好,深层次菜单在手机上展开后会占据大量空间,甚至超出屏幕边界——这一点在设计时就要做好取舍。 这些组件共同构成了 Element Plus 强大的菜单系统,可以根据不同需求灵活组合使用。仪表盘
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8