当前位置:首页 > VUE

vue elementui实现菜单

2026-03-28 11:59:52VUE

使用 Vue 和 Element UI 实现菜单

Element UI 提供了 el-menu 组件,可以快速构建导航菜单。以下是一个完整的实现示例:

安装 Element UI

确保项目已安装 Element UI:

npm install 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)

基础菜单实现

在 Vue 组件中使用 el-menu 组件:

<template>
  <el-menu
    :default-active="activeIndex"
    mode="horizontal"
    @select="handleSelect"
    background-color="#545c64"
    text-color="#fff"
    active-text-color="#ffd04b">
    <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, keyPath) {
      console.log(key, keyPath)
    }
  }
}
</script>

侧边栏菜单

如果需要侧边栏菜单,可以修改 modevertical

<el-menu
  :default-active="activeIndex"
  mode="vertical"
  @select="handleSelect">
  <!-- 菜单项 -->
</el-menu>

动态生成菜单

从接口获取菜单数据时,可以使用 v-for 动态生成:

<el-menu :default-active="activeIndex">
  <template v-for="item in menuData">
    <el-submenu v-if="item.children" :index="item.id">
      <template slot="title">{{item.title}}</template>
      <el-menu-item 
        v-for="child in item.children" 
        :key="child.id"
        :index="child.id">
        {{child.title}}
      </el-menu-item>
    </el-submenu>
    <el-menu-item v-else :index="item.id">
      {{item.title}}
    </el-menu-item>
  </template>
</el-menu>

菜单路由集成

结合 Vue Router 实现路由跳转:

<el-menu
  :router="true"
  :default-active="$route.path">
  <el-menu-item index="/home">首页</el-menu-item>
  <el-menu-item index="/about">关于</el-menu-item>
</el-menu>

菜单样式自定义

可以通过 CSS 覆盖默认样式:

vue elementui实现菜单

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

以上示例展示了使用 Element UI 实现各种菜单场景的方法,包括基础菜单、侧边栏菜单、动态菜单以及与路由的集成。根据实际需求选择合适的实现方式即可。

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

相关文章

vue实现人脸识别比对

vue实现人脸识别比对

Vue 实现人脸识别比对的方法 使用现成的人脸识别 API 通过调用第三方人脸识别 API(如 Face++、百度 AI、腾讯云等)实现比对功能。注册开发者账号获取 API Key 和 Secret,…

vue实现导航切换内容

vue实现导航切换内容

Vue实现导航切换内容的方法 在Vue中实现导航切换内容,可以通过以下方式实现: 使用动态组件 动态组件通过<component :is="currentComponent">实现内容切…

vue 实现滚动

vue 实现滚动

实现滚动的基本方法 在Vue中实现滚动效果可以通过多种方式完成,包括使用原生JavaScript、CSS或第三方库。以下是一些常见的方法: 使用window.scrollTo方法实现页面滚动 可以通…

vue实现selectable

vue实现selectable

Vue 实现可选择的 Select 组件 在 Vue 中实现一个可选择的 Select 组件,可以通过以下几种方式: 使用原生 HTML select 元素 <template> &…

vue实现链接

vue实现链接

Vue 实现链接的方法 在 Vue 中实现链接可以通过多种方式,包括使用 <router-link>、<a> 标签或编程式导航。以下是几种常见的方法: 使用 <rout…

vue实现导航

vue实现导航

使用 Vue Router 实现导航 Vue Router 是 Vue.js 官方提供的路由管理器,用于构建单页应用(SPA)的导航系统。以下是实现导航的基本步骤。 安装 Vue Router n…