当前位置:首页 > 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.js设计与实现》是一本深入探讨Vue.js框架内部原理和设计思想的书籍,适合希望深入理解Vue.js的开发者。以下是关于这本书的详细信息: 书籍内容 《Vue.js设…

vue实现一个tab栏

vue实现一个tab栏

Vue 实现 Tab 栏 基础实现(选项式 API) <template> <div class="tab-container"> <div class="t…

vue实现钟表

vue实现钟表

使用 Vue 实现动态钟表 以下是一个基于 Vue 3 的动态钟表实现方案,包含时分秒指针和数字时间显示。 模板部分 <template> <div class="cloc…

vue组件实现

vue组件实现

Vue 组件实现基础 Vue 组件是 Vue.js 的核心特性之一,允许将 UI 拆分为独立、可复用的模块。组件的实现包括定义、注册、数据传递和生命周期管理等。 定义组件 组件可以通过单文件组件(.…

vue 实现toast

vue 实现toast

vue 实现 toast 的方法 在 Vue 中实现 Toast 提示功能可以通过多种方式,以下是几种常见的实现方法: 使用第三方库 Vue 生态中有许多成熟的 Toast 库,例如 vue-toa…

vue tag实现

vue tag实现

Vue 标签实现方法 在 Vue 中实现标签功能可以通过多种方式完成,常见场景包括动态标签生成、标签输入框、标签管理等。以下是几种典型实现方案: 动态标签列表渲染 使用 v-for 指令渲染标签数组…