当前位置:首页 > VUE

vue elementui实现菜单

2026-03-08 01:40:38VUE

Vue + Element UI 实现菜单

安装依赖

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

npm install element-ui

引入 Element UI

main.js 中全局引入 Element UI:

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

Vue.use(ElementUI);

基本菜单结构

使用 el-menu 组件实现嵌套菜单。以下是一个基础示例:

vue elementui实现菜单

<template>
  <el-menu
    :default-active="activeIndex"
    mode="horizontal"
    @select="handleSelect"
  >
    <el-menu-item index="1">首页</el-menu-item>
    <el-submenu index="2">
      <template slot="title">产品</template>
      <el-menu-item index="2-1">产品列表</el-menu-item>
      <el-menu-item index="2-2">产品详情</el-menu-item>
    </el-submenu>
    <el-menu-item index="3">关于我们</el-menu-item>
  </el-menu>
</template>

<script>
export default {
  data() {
    return {
      activeIndex: '1'
    };
  },
  methods: {
    handleSelect(key) {
      console.log(key);
    }
  }
};
</script>

侧边栏菜单

若需侧边栏菜单,将 mode 改为 vertical

<el-menu
  :default-active="activeIndex"
  mode="vertical"
  background-color="#545c64"
  text-color="#fff"
  active-text-color="#ffd04b"
>
  <!-- 菜单项同上 -->
</el-menu>

动态生成菜单

通过 v-for 动态渲染菜单数据:

vue elementui实现菜单

<template>
  <el-menu :default-active="activeIndex">
    <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 {
      activeIndex: '1',
      menuItems: [
        { index: '1', title: '首页' },
        { index: '2', title: '产品' },
        { index: '3', title: '关于' }
      ]
    };
  }
};
</script>

路由集成

结合 Vue Router 实现菜单跳转:

<el-menu
  :router="true"
  :default-active="$route.path"
>
  <el-menu-item index="/home">首页</el-menu-item>
  <el-menu-item index="/products">产品</el-menu-item>
</el-menu>

样式自定义

通过 CSS 覆盖默认样式:

.el-menu {
  border-right: none;
}
.el-menu-item {
  font-size: 14px;
}

响应式菜单

使用 collapse 属性实现折叠功能:

<el-menu :collapse="isCollapse">
  <!-- 菜单项 -->
</el-menu>
<el-button @click="isCollapse = !isCollapse">切换</el-button>

注意事项

  • 确保 index 唯一,避免冲突。
  • 侧边栏菜单需设置宽度,折叠时调整为 64px
  • 路由模式需与 vue-router 配置一致。

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

相关文章

vue 实现权限

vue 实现权限

Vue 实现权限控制的方法 在 Vue 项目中实现权限控制通常涉及前端路由、组件和按钮级别的权限管理。以下是几种常见的实现方式: 路由权限控制 通过路由守卫实现权限验证,过滤用户无权访问的路由:…

vue实现cs

vue实现cs

Vue 实现 CS(Client-Side)渲染的常见方法 Vue.js 是一个用于构建用户界面的渐进式框架,默认采用客户端渲染(CSR)。以下是几种常见的实现方式: 使用 Vue CLI 创建项目…

vue实现试卷

vue实现试卷

Vue实现试卷系统的基本思路 使用Vue.js构建试卷系统需要结合组件化开发、状态管理和后端数据交互。核心功能包括题目展示、答题逻辑、计时器和提交答案。 核心功能模块划分 试卷组件结构 试卷容器组…

vue实现数组

vue实现数组

Vue 实现数组操作的方法 在 Vue 中,数组的操作需要特别注意响应式的问题。Vue 提供了一些方法来确保数组的变动能够触发视图更新。 响应式数组方法 Vue 对以下数组方法进行了封装,确保它们能…

vue toast实现

vue toast实现

Vue Toast 实现方法 使用第三方库(推荐) 安装 vue-toastification 库,这是一个功能丰富且轻量级的 Vue Toast 插件。 npm install vue-toast…

vue实现甘特图

vue实现甘特图

使用 Vue 实现甘特图 基于开源库(如 vue-ganttastic) 安装依赖库: npm install vue-ganttastic 示例代码: <template> &l…