当前位置:首页 > 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 实现帖子功能需要结合前端框架和后端数据交互,以下是实现的关键步骤和代码示例。 帖子列表展示 创建帖子列表组件,使用 v-for 渲染帖子数据,通过 axios…

antd vue 实现

antd vue 实现

使用 Ant Design Vue 实现功能 Ant Design Vue 是基于 Vue.js 的 UI 组件库,提供了丰富的组件和设计规范。以下是一些常见功能的实现方法。 安装 Ant Desi…

vue 实现挂载

vue 实现挂载

Vue 实现挂载的基本方法 在 Vue 中,挂载是将 Vue 实例与 DOM 元素关联的过程。通过挂载,Vue 可以管理 DOM 并实现数据绑定和响应式更新。 创建 Vue 实例并挂载 con…

vue grid实现

vue grid实现

Vue Grid 实现方法 在 Vue 中实现网格布局可以通过多种方式完成,包括使用原生 CSS Grid、第三方组件库或自定义组件。以下是几种常见方法: 使用原生 CSS Grid 通过 Vue…

vue实现文字

vue实现文字

Vue 中实现文字显示的方法 在 Vue 中实现文字显示可以通过多种方式,包括插值表达式、指令、组件等。以下是几种常见的实现方法: 插值表达式 使用双大括号 {{ }} 进行文本插值,这是 Vue…

vue 组件实现

vue 组件实现

Vue 组件实现方法 单文件组件 (SFC) 使用 .vue 文件格式,包含模板、脚本和样式三部分: <template> <div class="example">{{…