当前位置:首页 > VUE

vue elementui实现菜单

2026-02-11 01:56:41VUE

Vue + ElementUI 实现菜单

安装依赖

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

npm install element-ui

引入 ElementUI

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
    default-active="1"
    class="el-menu-vertical-demo"
    background-color="#545c64"
    text-color="#fff"
    active-text-color="#ffd04b">
    <el-submenu index="1">
      <template slot="title">
        <i class="el-icon-location"></i>
        <span>导航一</span>
      </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">
      <i class="el-icon-menu"></i>
      <span>导航二</span>
    </el-menu-item>
  </el-menu>
</template>

动态生成菜单

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

<template>
  <el-menu
    :default-active="activeIndex"
    background-color="#545c64"
    text-color="#fff"
    active-text-color="#ffd04b">
    <template v-for="item in menuData">
      <el-submenu v-if="item.children" :index="item.index">
        <template slot="title">
          <i :class="item.icon"></i>
          <span>{{ item.title }}</span>
        </template>
        <el-menu-item
          v-for="child in item.children"
          :key="child.index"
          :index="child.index">
          {{ child.title }}
        </el-menu-item>
      </el-submenu>
      <el-menu-item v-else :index="item.index">
        <i :class="item.icon"></i>
        <span>{{ item.title }}</span>
      </el-menu-item>
    </template>
  </el-menu>
</template>

<script>
export default {
  data() {
    return {
      activeIndex: '1',
      menuData: [
        {
          index: '1',
          title: '导航一',
          icon: 'el-icon-location',
          children: [
            { index: '1-1', title: '选项1' },
            { index: '1-2', title: '选项2' }
          ]
        },
        {
          index: '2',
          title: '导航二',
          icon: 'el-icon-menu'
        }
      ]
    };
  }
};
</script>

路由跳转

结合 Vue Router 实现菜单跳转:

  1. el-menu 上添加 router 属性:
    <el-menu router :default-active="$route.path">
  2. 为菜单项设置 index 为路由路径:
    menuData: [
    {
     index: '/page1',
     title: '页面一',
     icon: 'el-icon-document'
    }
    ]

菜单样式调整

通过 CSS 自定义菜单样式:

.el-menu-vertical-demo {
  width: 200px;
  min-height: 100vh;
}
.el-menu {
  border-right: none;
}

响应式折叠菜单

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

<template>
  <div>
    <el-button @click="isCollapse = !isCollapse">切换折叠</el-button>
    <el-menu
      :collapse="isCollapse"
      class="el-menu-vertical-demo"
      background-color="#545c64"
      text-color="#fff"
      active-text-color="#ffd04b">
      <!-- 菜单内容 -->
    </el-menu>
  </div>
</template>

<script>
export default {
  data() {
    return {
      isCollapse: false
    };
  }
};
</script>

vue elementui实现菜单

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

相关文章

vue项目实现

vue项目实现

Vue 项目实现指南 环境准备 确保已安装 Node.js(建议版本 14+)和 npm/yarn。通过以下命令检查版本: node -v npm -v 安装 Vue CLI(脚手架工具):…

vue播放倍速怎么实现

vue播放倍速怎么实现

实现Vue播放倍速的方法 在Vue中实现播放倍速功能通常涉及HTML5的<video>元素或第三方播放器库。以下是几种常见实现方式: 使用原生HTML5 video元素 通过ref获取v…

vue实现冰墩墩

vue实现冰墩墩

使用 Vue 实现冰墩墩动画 通过 Vue 的动画特性和 SVG 技术,可以动态渲染冰墩墩的形象。以下是具体实现方法: 准备 SVG 素材 冰墩墩的形象通常由多个 SVG 路径组成,包括身体轮廓、面…

vue实现下拉刷新组件

vue实现下拉刷新组件

实现下拉刷新组件的核心思路 下拉刷新功能通常通过监听触摸事件、滚动位置和动画效果实现。Vue中可以利用自定义指令或封装组件完成,以下为两种常见实现方式。 基于自定义指令的实现 创建指令监听触摸事件,…

vue实现单点

vue实现单点

Vue 实现单点登录(SSO)方案 单点登录(SSO)允许用户在多个相关但独立的系统中使用同一组凭证登录。以下是基于 Vue 的实现方案: 基于 OAuth2/OpenID Connect 的实现…

vue实现旋转

vue实现旋转

Vue 实现旋转效果的方法 在 Vue 中实现旋转效果可以通过多种方式完成,以下是几种常见的方法: 使用 CSS 动画 通过 Vue 的 :class 或 :style 绑定 CSS 动画实现旋转效…