当前位置:首页 > VUE

vue elementui实现菜单

2026-01-08 13:07:48VUE

Vue ElementUI 实现菜单

安装 ElementUI

确保项目已安装 Vue 和 ElementUI。若未安装,可以通过以下命令安装:

npm install element-ui

main.js 中引入 ElementUI:

import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.use(ElementUI);

基本菜单结构

使用 el-menu 组件创建菜单。以下是一个简单的水平菜单示例:

<template>
  <el-menu mode="horizontal" default-active="1">
    <el-menu-item index="1">首页</el-menu-item>
    <el-menu-item index="2">产品</el-menu-item>
    <el-menu-item index="3">关于我们</el-menu-item>
  </el-menu>
</template>

嵌套子菜单

使用 el-submenu 实现嵌套菜单:

vue elementui实现菜单

<template>
  <el-menu default-active="1" class="el-menu-vertical">
    <el-submenu index="1">
      <template slot="title">产品</template>
      <el-menu-item index="1-1">产品1</el-menu-item>
      <el-menu-item index="1-2">产品2</el-menu-item>
    </el-submenu>
    <el-menu-item index="2">关于我们</el-menu-item>
  </el-menu>
</template>

动态生成菜单

通过 v-for 动态生成菜单项:

<template>
  <el-menu default-active="1">
    <el-menu-item 
      v-for="item in menuItems" 
      :key="item.index" 
      :index="item.index"
    >
      {{ item.title }}
    </el-menu-item>
  </el-menu>
</template>

<script>
export default {
  data() {
    return {
      menuItems: [
        { index: '1', title: '首页' },
        { index: '2', title: '产品' },
        { index: '3', title: '关于我们' }
      ]
    };
  }
};
</script>

路由跳转

结合 Vue Router 实现菜单路由跳转:

vue elementui实现菜单

<template>
  <el-menu 
    router 
    default-active="/" 
    mode="horizontal"
  >
    <el-menu-item index="/">首页</el-menu-item>
    <el-menu-item index="/products">产品</el-menu-item>
  </el-menu>
</template>

自定义菜单样式

通过 CSS 覆盖默认样式或使用 class 自定义菜单外观:

<template>
  <el-menu class="custom-menu">
    <!-- 菜单项 -->
  </el-menu>
</template>

<style>
.custom-menu {
  background-color: #f5f5f5;
}
.custom-menu .el-menu-item {
  color: #333;
}
</style>

菜单事件处理

监听菜单事件,如 select

<template>
  <el-menu @select="handleMenuSelect">
    <!-- 菜单项 -->
  </el-menu>
</template>

<script>
export default {
  methods: {
    handleMenuSelect(index) {
      console.log('选中菜单:', index);
    }
  }
};
</script>

响应式菜单

结合媒体查询或 JavaScript 实现响应式菜单折叠:

<template>
  <el-menu :collapse="isCollapse">
    <!-- 菜单项 -->
  </el-menu>
</template>

<script>
export default {
  data() {
    return {
      isCollapse: false
    };
  },
  mounted() {
    window.addEventListener('resize', this.handleResize);
  },
  methods: {
    handleResize() {
      this.isCollapse = window.innerWidth < 768;
    }
  }
};
</script>

标签: 菜单vue
分享给朋友:

相关文章

vue实现多级弹窗

vue实现多级弹窗

Vue 多级弹窗实现方法 方法一:使用动态组件与递归组件 在 Vue 中可以通过动态组件配合递归组件实现多级弹窗。定义一个基础弹窗组件,通过递归调用自身实现层级嵌套。 基础弹窗组件模板示例:…

vue实现打字机

vue实现打字机

Vue实现打字机效果 在Vue中实现打字机效果可以通过动态更新文本内容并添加延迟来实现。以下是几种常见的实现方法: 使用setInterval实现 <template> <di…

vue实现压缩上传文件

vue实现压缩上传文件

压缩上传文件的实现方法 在Vue中实现文件压缩和上传功能,可以通过以下步骤完成。该方法结合了前端文件压缩库和HTTP请求,确保文件在上传前被有效压缩。 安装必要的依赖 需要使用compressorj…

vue 实现在线预览

vue 实现在线预览

Vue 实现在线预览的常见方法 使用 iframe 嵌入 通过 iframe 标签可以嵌入多种类型的文件,如 PDF、图片、网页等。需要确保文件地址可访问。 <template> &…

vue实现多选题

vue实现多选题

Vue实现多选题的方法 使用Vue实现多选题功能,可以通过v-model绑定数组、动态渲染选项、以及处理选中状态来实现。以下是一个完整的实现示例: 基础实现代码 <template>…

vue实现多用户登录

vue实现多用户登录

实现多用户登录的基本思路 在Vue中实现多用户登录通常需要结合后端API完成身份验证,并通过前端路由、状态管理(如Vuex或Pinia)和本地存储(如localStorage)来管理用户会话。以下是关…