【Vue3 博物馆管理系统】使用Vue3、Element-plus菜单组件构建前台用户菜单

系列文章目录

第一章 定制上中下(顶部菜单、底部区域、中间主区域显示)三层结构首页
第二章 使用Vue3、Element-plus菜单组件构建菜单

第三章 使用Vue3、Element-plus菜单组件构建轮播图

第四章 使用Vue3、Element-plus菜单组件构建组图文章


### 文章目录

  • [系列文章目录](#文章目录 系列文章目录 @TOC 前言 1、学习Element-plus 的导航组件 NavMenu 导航菜单 1.1、NavMenu 导航菜单 1.2、横向导航菜单 1.3、完整的顶部区域数据和效果展示 1.4、再来个子菜单代码和效果 1.5、学习Menu的API 1.5.1、Menu Attribute 1.5.2、Menu Methods 1.5.3、Menu Events 1.5.4、SubMenu Attribute 1.5.5、Menu-Item Attribute 总结)
  • [@[TOC](文章目录)](#文章目录 系列文章目录 @TOC 前言 1、学习Element-plus 的导航组件 NavMenu 导航菜单 1.1、NavMenu 导航菜单 1.2、横向导航菜单 1.3、完整的顶部区域数据和效果展示 1.4、再来个子菜单代码和效果 1.5、学习Menu的API 1.5.1、Menu Attribute 1.5.2、Menu Methods 1.5.3、Menu Events 1.5.4、SubMenu Attribute 1.5.5、Menu-Item Attribute 总结)
  • [前言](#文章目录 系列文章目录 @TOC 前言 1、学习Element-plus 的导航组件 NavMenu 导航菜单 1.1、NavMenu 导航菜单 1.2、横向导航菜单 1.3、完整的顶部区域数据和效果展示 1.4、再来个子菜单代码和效果 1.5、学习Menu的API 1.5.1、Menu Attribute 1.5.2、Menu Methods 1.5.3、Menu Events 1.5.4、SubMenu Attribute 1.5.5、Menu-Item Attribute 总结)
  • [1、学习Element-plus 的导航组件 NavMenu 导航菜单](#文章目录 系列文章目录 @TOC 前言 1、学习Element-plus 的导航组件 NavMenu 导航菜单 1.1、NavMenu 导航菜单 1.2、横向导航菜单 1.3、完整的顶部区域数据和效果展示 1.4、再来个子菜单代码和效果 1.5、学习Menu的API 1.5.1、Menu Attribute 1.5.2、Menu Methods 1.5.3、Menu Events 1.5.4、SubMenu Attribute 1.5.5、Menu-Item Attribute 总结)
  • [1.1、NavMenu 导航菜单](#文章目录 系列文章目录 @TOC 前言 1、学习Element-plus 的导航组件 NavMenu 导航菜单 1.1、NavMenu 导航菜单 1.2、横向导航菜单 1.3、完整的顶部区域数据和效果展示 1.4、再来个子菜单代码和效果 1.5、学习Menu的API 1.5.1、Menu Attribute 1.5.2、Menu Methods 1.5.3、Menu Events 1.5.4、SubMenu Attribute 1.5.5、Menu-Item Attribute 总结)
  • [1.2、横向导航菜单](#文章目录 系列文章目录 @TOC 前言 1、学习Element-plus 的导航组件 NavMenu 导航菜单 1.1、NavMenu 导航菜单 1.2、横向导航菜单 1.3、完整的顶部区域数据和效果展示 1.4、再来个子菜单代码和效果 1.5、学习Menu的API 1.5.1、Menu Attribute 1.5.2、Menu Methods 1.5.3、Menu Events 1.5.4、SubMenu Attribute 1.5.5、Menu-Item Attribute 总结)
  • [1.3、完整的顶部区域数据和效果展示](#文章目录 系列文章目录 @TOC 前言 1、学习Element-plus 的导航组件 NavMenu 导航菜单 1.1、NavMenu 导航菜单 1.2、横向导航菜单 1.3、完整的顶部区域数据和效果展示 1.4、再来个子菜单代码和效果 1.5、学习Menu的API 1.5.1、Menu Attribute 1.5.2、Menu Methods 1.5.3、Menu Events 1.5.4、SubMenu Attribute 1.5.5、Menu-Item Attribute 总结)
  • [1.4、再来个子菜单代码和效果](#文章目录 系列文章目录 @TOC 前言 1、学习Element-plus 的导航组件 NavMenu 导航菜单 1.1、NavMenu 导航菜单 1.2、横向导航菜单 1.3、完整的顶部区域数据和效果展示 1.4、再来个子菜单代码和效果 1.5、学习Menu的API 1.5.1、Menu Attribute 1.5.2、Menu Methods 1.5.3、Menu Events 1.5.4、SubMenu Attribute 1.5.5、Menu-Item Attribute 总结)
  • [1.5、学习Menu的API](#文章目录 系列文章目录 @TOC 前言 1、学习Element-plus 的导航组件 NavMenu 导航菜单 1.1、NavMenu 导航菜单 1.2、横向导航菜单 1.3、完整的顶部区域数据和效果展示 1.4、再来个子菜单代码和效果 1.5、学习Menu的API 1.5.1、Menu Attribute 1.5.2、Menu Methods 1.5.3、Menu Events 1.5.4、SubMenu Attribute 1.5.5、Menu-Item Attribute 总结)
  • [1.5.1、Menu Attribute](#文章目录 系列文章目录 @TOC 前言 1、学习Element-plus 的导航组件 NavMenu 导航菜单 1.1、NavMenu 导航菜单 1.2、横向导航菜单 1.3、完整的顶部区域数据和效果展示 1.4、再来个子菜单代码和效果 1.5、学习Menu的API 1.5.1、Menu Attribute 1.5.2、Menu Methods 1.5.3、Menu Events 1.5.4、SubMenu Attribute 1.5.5、Menu-Item Attribute 总结)
  • [1.5.2、Menu Methods](#文章目录 系列文章目录 @TOC 前言 1、学习Element-plus 的导航组件 NavMenu 导航菜单 1.1、NavMenu 导航菜单 1.2、横向导航菜单 1.3、完整的顶部区域数据和效果展示 1.4、再来个子菜单代码和效果 1.5、学习Menu的API 1.5.1、Menu Attribute 1.5.2、Menu Methods 1.5.3、Menu Events 1.5.4、SubMenu Attribute 1.5.5、Menu-Item Attribute 总结)
  • [1.5.3、Menu Events](#文章目录 系列文章目录 @TOC 前言 1、学习Element-plus 的导航组件 NavMenu 导航菜单 1.1、NavMenu 导航菜单 1.2、横向导航菜单 1.3、完整的顶部区域数据和效果展示 1.4、再来个子菜单代码和效果 1.5、学习Menu的API 1.5.1、Menu Attribute 1.5.2、Menu Methods 1.5.3、Menu Events 1.5.4、SubMenu Attribute 1.5.5、Menu-Item Attribute 总结)
  • [1.5.4、SubMenu Attribute](#文章目录 系列文章目录 @TOC 前言 1、学习Element-plus 的导航组件 NavMenu 导航菜单 1.1、NavMenu 导航菜单 1.2、横向导航菜单 1.3、完整的顶部区域数据和效果展示 1.4、再来个子菜单代码和效果 1.5、学习Menu的API 1.5.1、Menu Attribute 1.5.2、Menu Methods 1.5.3、Menu Events 1.5.4、SubMenu Attribute 1.5.5、Menu-Item Attribute 总结)
  • [1.5.5、Menu-Item Attribute](#文章目录 系列文章目录 @TOC 前言 1、学习Element-plus 的导航组件 NavMenu 导航菜单 1.1、NavMenu 导航菜单 1.2、横向导航菜单 1.3、完整的顶部区域数据和效果展示 1.4、再来个子菜单代码和效果 1.5、学习Menu的API 1.5.1、Menu Attribute 1.5.2、Menu Methods 1.5.3、Menu Events 1.5.4、SubMenu Attribute 1.5.5、Menu-Item Attribute 总结)
  • [总结](#文章目录 系列文章目录 @TOC 前言 1、学习Element-plus 的导航组件 NavMenu 导航菜单 1.1、NavMenu 导航菜单 1.2、横向导航菜单 1.3、完整的顶部区域数据和效果展示 1.4、再来个子菜单代码和效果 1.5、学习Menu的API 1.5.1、Menu Attribute 1.5.2、Menu Methods 1.5.3、Menu Events 1.5.4、SubMenu Attribute 1.5.5、Menu-Item Attribute 总结)

前言

上一章节给我们把博物馆管理系统打了个地基,基本的产品架构和框架已经都落实到位。

这一章节,我们做1件事:构建顶部区域的菜单,包括父子菜单

1、学习Element-plus 的导航组件 NavMenu 导航菜单

1.1、NavMenu 导航菜单

为网站提供导航功能的菜单

1.2、横向导航菜单

导航菜单默认为垂直模式,通过mode属性可以使导航菜单变更为水平模式。

上一章节我们的页面布局,顶部采用横向导航菜单布局,也就是水平模式的菜单,因此需要水平模式的导航菜单。话不多说,上代码。

javascript 复制代码
<el-menu
            :default-active="1"
            class="el-menu-demo"
            mode="horizontal"
            active-text-color="#409eff"
            router
            :collapse="false"
        >
        ....................
</el-menu>

1.3、完整的顶部区域数据和效果展示

html 复制代码
	<!-- 顶栏容器 -->
      <el-header style="margin-top: 10px;">
        <el-menu
            :default-active="1"
            class="el-menu-demo"
            mode="horizontal"
            active-text-color="#409eff"
            router
            :collapse="false"
        >
          <div class="logo" style="width: 10%;" >
            <router-link to="/">
              <span style="width: 240px; position: absolute; top: 20px; left: 60px; ">罗刹海市博物馆</span>
              <img  src="./assets/logo.png" style="height: 50px;" alt />
            </router-link>
          </div>
          <el-menu-item index="/" >首页</el-menu-item>
          <el-sub-menu index="/about" >关于我们</el-sub-menu>
           <el-menu-item index="/clzl">陈列展览</el-menu-item>
          <el-menu-item index="/sc">收藏</el-menu-item>
          <el-menu-item index="/cg">参观</el-menu-item>
          <el-menu-item index="/hd" > <template #title>活动</template></el-menu-item>
          <el-menu-item index="/xx" >学习</el-menu-item>
          <el-menu-item index="/yj" >研究</el-menu-item>
        </el-menu>
      </el-header>

1.4、再来个子菜单代码和效果

在菜单中通过submenu组件可以生成二级菜单

html 复制代码
	<el-container>
      <!-- 顶栏容器 -->
      <el-header style="margin-top: 10px;">
        <el-menu
            :default-active="1"
            class="el-menu-demo"
            mode="horizontal"
            active-text-color="#409eff"
            router
            :collapse="false"
        >
          <div class="logo" style="width: 10%;" >
            <router-link to="/">
              <span style="width: 240px; position: absolute; top: 20px; left: 60px; ">罗刹海市博物馆</span>
              <img  src="./assets/logo.png" style="height: 50px;" alt />
            </router-link>
          </div>
          <el-menu-item index="/" >首页</el-menu-item>
          <el-sub-menu index="/about" >
            <template #title>关于我们</template>
            <el-menu-item index="/about/gk">概況</el-menu-item>
            <el-menu-item index="/about/ls">历史</el-menu-item>
            <el-menu-item index="/about/zjjs">专家介绍</el-menu-item>
            <el-menu-item index="/about/yzzc">院长致辞</el-menu-item>
            <el-menu-item index="/about/mhgs">幕后故事</el-menu-item>
            <el-menu-item index="/about/bwgzy">博物馆之友</el-menu-item>
            <el-menu-item index="/about/xwzx">新闻资讯</el-menu-item>
          </el-sub-menu>

          <el-menu-item index="/clzl">陈列展览</el-menu-item>
          <el-menu-item index="/sc">收藏</el-menu-item>
          <el-menu-item index="/cg">参观</el-menu-item>
          <el-menu-item index="/hd" > <template #title>活动</template></el-menu-item>
          <el-menu-item index="/xx" >学习</el-menu-item>
          <el-menu-item index="/yj" >研究</el-menu-item>
        </el-menu>
      </el-header>

1.5、学习Menu的API

1.5.1、Menu Attribute

参数 说明 类型 可选值 默认值
mode 模式 string horizontal / vertical vertical
collapse 是否水平折叠收起菜单(仅在 mode 为 vertical 时可用) boolean --- false
background-color 菜单的背景色(仅支持 hex 格式) string --- #ffffff
text-color 菜单的文字颜色(仅支持 hex 格式) string --- #303133
active-text-color 当前激活菜单的文字颜色(仅支持 hex 格式) string --- #409EFF
default-active 当前激活菜单的 index string --- ---
default-openeds 当前打开的 sub-menu 的 index 的数组 Array --- ---
unique-opened 是否只保持一个子菜单的展开 boolean --- false
menu-trigger 子菜单打开的触发方式(只在 mode 为 horizontal 时有效) string hover / click hover
router 是否使用 vue-router 的模式,启用该模式会在激活导航时以 index 作为 path 进行路由跳转 boolean --- false
collapse-transition 是否开启折叠动画 boolean --- true

1.5.2、Menu Methods

方法名称 说明 参数
open 展开指定的 sub-menu index: 需要打开的 sub-menu 的 index
close 收起指定的 sub-menu index: 需要收起的 sub-menu 的 index

1.5.3、Menu Events

事件名称 说明 回调参数
select 菜单激活回调 index: 选中菜单项的 index, indexPath: 选中菜单项的 index path
open sub-menu 展开的回调 index: 打开的 sub-menu 的 index, indexPath: 打开的 sub-menu 的 index path
close sub-menu 收起的回调 index: 收起的 sub-menu 的 index, indexPath: 收起的 sub-menu 的 index path

1.5.4、SubMenu Attribute

参数 说明 类型 可选值 默认值
index 唯一标志 string/null --- null
popper-class 弹出菜单的自定义类名 string --- ---
show-timeout 展开 sub-menu 的延时 number --- 300
hide-timeout 收起 sub-menu 的延时 number --- 300
disabled 是否禁用 boolean --- false
popper-append-to-body 是否将弹出菜单插入至 body 元素。在菜单的定位出现问题时,可尝试修改该属性 boolean --- 一级子菜单:true / 非一级子菜单:false

1.5.5、Menu-Item Attribute

参数 说明 类型 可选值 默认值
index 唯一标志 string --- ---
route Vue Router 路径对象 Object ---
disabled 是否禁用 boolean --- false

总结

以上就是今天要讲的内容,本文仅仅简单介绍了博物馆管理前台用户导航菜单布局,涉及Element-plus 的菜单,菜单的方向,子菜单,菜单、子菜单的属性、样式等。

相关推荐
清汤饺子8 小时前
OpenClaw 本地部署教程 - 从 0 到 1 跑通你的第一只龙虾
前端·javascript·vibecoding
颜酱8 小时前
图的数据结构:从「多叉树」到存储与遍历
javascript·后端·算法
爱吃的小肥羊10 小时前
比 Claude Code 便宜一半!Codex 国内部署使用教程,三种方法任选一!
前端
IT_陈寒11 小时前
SpringBoot项目启动慢?5个技巧让你的应用秒级响应!
前端·人工智能·后端
树上有只程序猿12 小时前
2026低代码选型指南,主流低代码开发平台排名出炉
前端·后端
橙某人12 小时前
LogicFlow 小地图性能优化:从「实时克隆」到「占位缩略块」!🚀
前端·javascript·vue.js
高端章鱼哥12 小时前
为什么说用OpenClaw对打工人来说“不划算”
前端·后端
大脸怪12 小时前
告别 F12!前端开发者必备:一键管理 localStorage / Cookie / SessionStorage 神器
前端·后端·浏览器
Mr_Mao12 小时前
我受够了混乱的 API 代码,所以我写了个框架
前端·api
小徐_233312 小时前
向日葵 x AI:把远程控制封装成 MCP,让 AI 替我远程控制设备
前端·人工智能