当前位置:首页 > 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 实现嵌套菜单:

<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 实现菜单路由跳转:

<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 实现响应式菜单折叠:

vue elementui实现菜单

<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实现生成二维码

使用qrcode.vue库生成二维码 安装qrcode.vue库: npm install qrcode.vue --save 在Vue组件中使用: <template> <…

vue 实现豆瓣

vue 实现豆瓣

以下是基于 Vue 实现豆瓣电影类功能的实现方案,涵盖核心模块和技术要点: 数据获取与 API 调用 使用豆瓣开放 API(需注意调用频率限制)或第三方代理接口 推荐 axios 进行异步请求,配合…

实现简易vue

实现简易vue

实现简易 Vue 的核心思路 Vue 的核心功能包括数据响应式、模板编译和虚拟 DOM。以下是一个简易实现方案,涵盖核心功能模块。 数据响应式系统 通过 Object.defineProperty…

vue实现换肤

vue实现换肤

使用 CSS 变量实现换肤 在 Vue 项目中,可以通过 CSS 变量(Custom Properties)动态切换主题色。CSS 变量可以在运行时修改,适合实现换肤功能。 定义全局 CSS 变量:…

vue实现radio

vue实现radio

Vue 实现 Radio 按钮 在 Vue 中实现 Radio 按钮可以通过 v-model 进行数据绑定,结合 input 元素的 type="radio" 属性。以下是一个基本示例: <t…

vue实现等级选择

vue实现等级选择

实现等级选择的方法 在Vue中实现等级选择功能,可以通过多种方式完成,以下是几种常见的实现方法: 使用v-for渲染星级选择 通过v-for指令循环渲染星级图标,结合点击事件实现等级选择:…