当前位置: 首页 > article >正文

element-plus的菜单组件el-menu

菜单是几乎是每个管理系统的软件系统中不可或缺的,element-plus提供的菜单组件可以快速完成大部分的菜单的需求开发,
该组件内置和vue-router的集成,使用起来很方便。

主要组件如下

el-menu 顶级菜单组件

主要属性
mode:决定菜单的展示模式,水平或者垂直。
router:是否启用vue-router

在这里插入图片描述

el-sub-menu 子菜单组件

子菜单组件,如果子菜单还有子菜单可进行多层嵌套
index属性是比较重要的,推荐设置
在这里插入图片描述

el-menu-item-group

菜单项组组件
主要属性
title:标识分组类别

el-menu-item

菜单项组件
index属性:如果启用vue-router,此属性需要跟vue-router的路由的path保持一致。
route:可不设置,如果设置了前者
在这里插入图片描述

示例

<script setup lang="ts">
import { onMounted, reactive, ref, watch } from 'vue'
import { RouterLink, RouterView,useRoute,useRouter } from 'vue-router'
import type {MenuItemRegistered} from 'element-plus'

const selectEvent=(obj:MenuItemRegistered)=>{
  console.log(obj.index)
}

</script>


<template>

  <div>
    <el-container>
      <el-header></el-header>
      <el-main>
        
          


      <el-row>
        <el-col :span="12">
          <h5>未来manager</h5>
            <el-menu router default-active="/about">
                <el-sub-menu index="userCenter">
                  <template #title>
                      <el-icon><location /></el-icon>
                      <span>系统管理</span>
                  </template>
                  <el-menu-item-group title="用户center">
                    <el-menu-item index="/" @click="selectEvent">用户管理</el-menu-item>
                    <el-menu-item index="/about" @click="selectEvent">用户组管理</el-menu-item>
                  </el-menu-item-group>
                </el-sub-menu>
            </el-menu>
        </el-col>
        <el-col :span="12">
          <router-view v-slot="{ Component }">
        <keep-alive >
          <component :is="Component" :key="$route.fullPath" />
        </keep-alive>
      </router-view>
        </el-col>
      </el-row>




      

      </el-main>
      <el-footer></el-footer>

    </el-container>


  </div>



</template>

<style scoped></style>

import { createRouter, createWebHashHistory } from 'vue-router'
import HomeView from '../views/HomeView.vue'
import ChatRoom from '@/components/ChatRoom.vue';

const router = createRouter({
  history: createWebHashHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: '/',
      name: 'home',
      component: HomeView
    },
    {
      path: '/about',
      name: 'about',
      // route level code-splitting
      // this generates a separate chunk (About.[hash].js) for this route
      // which is lazy-loaded when the route is visited.
      component: ChatRoom
    }
  ]
})

export default router

在这里插入图片描述
https://element-plus.org/zh-CN/component/menu.html#menu-item-attributes


http://www.kler.cn/a/312445.html

相关文章:

  • JS 实现SSE通讯和了解SSE通讯
  • Vue 项目打包后环境变量丢失问题(清除缓存),区分.env和.env.*文件
  • jmeter常用配置元件介绍总结之定时器
  • Matlab: 生成对抗网络,使用Datastore结构输入mat格式数据
  • 拦截器实现http请求访问本地图片
  • 金价大跌,特朗普胜选或成导火索
  • 7--SpringBoot-后端开发、原理详解(面试高频提问点)
  • Web开发:ABP框架3——入门级别的接口增删改查实现原理
  • 基于SpringBoot的自习室预订系统
  • 莱卡相机sd内存卡格式化了怎么恢复数据
  • Volta无障碍的 JavaScript 工具管理器
  • Java 中使用 Redis 的几种方式优缺点对比
  • Linux 生成 git ssh 公钥
  • 站群服务器适用于哪些场景当中?
  • Linux服务器及应用环境快速部署、调试、迁移、维护、监控
  • Jenkins怎么设置每日自动执行构建任务?
  • 使用 nvm 管理 node 版本:如何在 macOS 和 Windows 上安装使用nvm
  • UniApp如何打包成客户端应用程序
  • 前后端分离集成CAS单点登录
  • Windows安装HeidiSQL教程(图文)
  • python中装饰器的作用
  • Autosar学习----AUTOSAR_SWS_BSWGeneral(六)
  • 基于协同过滤算法+PHP的新闻推荐系统
  • 无人机维修保养一对一教学技术详解
  • LaTex2024 下载安装运行HelloWorld—全流程笔记
  • 【C++篇】C++类与对象深度解析(六):全面剖析拷贝省略、RVO、NRVO优化策略