当前位置:首页 > VUE

vue element实现导航联动

2026-01-22 08:01:01VUE

Vue + Element UI 实现导航联动

在 Vue 项目中结合 Element UI 实现导航联动功能,通常需要利用 el-menu 组件及其相关属性。以下是实现步骤和代码示例:

基本导航联动实现

安装 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);

在组件中使用 el-menu

<template>
  <el-menu
    :default-active="activeIndex"
    mode="horizontal"
    @select="handleSelect"
  >
    <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>

<script>
export default {
  data() {
    return {
      activeIndex: '1'
    };
  },
  methods: {
    handleSelect(index) {
      this.activeIndex = index;
      // 根据 index 执行路由跳转或其他逻辑
      if (index === '1') this.$router.push('/home');
      if (index === '2') this.$router.push('/products');
      if (index === '3') this.$router.push('/about');
    }
  }
};
</script>

动态绑定路由与导航

通过 router-link 实现导航与路由联动:

<template>
  <el-menu
    :default-active="$route.path"
    mode="horizontal"
    router
  >
    <el-menu-item index="/home">首页</el-menu-item>
    <el-menu-item index="/products">产品</el-menu-item>
    <el-menu-item index="/about">关于我们</el-menu-item>
  </el-menu>
</template>

说明:

  • router 属性启用路由模式,index 直接绑定路由路径。
  • default-active 绑定当前路由路径 $route.path,实现高亮同步。

嵌套菜单联动

使用 el-submenu 实现多级导航联动:

<template>
  <el-menu
    :default-active="$route.path"
    mode="vertical"
    router
  >
    <el-submenu index="1">
      <template slot="title">产品</template>
      <el-menu-item index="/product/web">Web 产品</el-menu-item>
      <el-menu-item index="/product/mobile">移动端产品</el-menu-item>
    </el-submenu>
  </el-menu>
</template>

侧边栏导航联动

结合 el-menuel-submenu 实现侧边栏联动:

vue element实现导航联动

<template>
  <el-menu
    :default-active="$route.path"
    class="sidebar"
    router
  >
    <el-menu-item index="/dashboard">
      <i class="el-icon-s-home"></i>
      <span>仪表盘</span>
    </el-menu-item>
    <el-submenu index="2">
      <template slot="title">
        <i class="el-icon-s-management"></i>
        <span>管理</span>
      </template>
      <el-menu-item index="/user/list">用户列表</el-menu-item>
      <el-menu-item index="/role/list">角色列表</el-menu-item>
    </el-submenu>
  </el-menu>
</template>

<style>
.sidebar {
  height: 100vh;
  width: 200px;
}
</style>

注意事项

  1. 路由模式:确保 router 属性已启用,且 index 值与路由配置一致。
  2. 高亮同步:通过 default-active 绑定当前路由路径(如 $route.path)。
  3. 嵌套菜单:多级菜单需使用 el-submenu 包裹子项。
  4. 样式调整:根据需要自定义菜单宽度、高度或背景色。

通过上述方法,可以灵活实现 Vue + Element UI 的导航联动功能。

标签: vueelement
分享给朋友:

相关文章

vue穿梭框组件实现

vue穿梭框组件实现

实现基础穿梭框组件 在Vue中实现穿梭框组件,可以使用<el-transfer>(Element UI)或手动实现。以下是手动实现的核心逻辑: <template> &l…

vue实现过程

vue实现过程

Vue 的实现过程 Vue 的实现过程可以分为多个核心模块,包括响应式系统、虚拟 DOM、模板编译等。以下是 Vue 的主要实现过程分析。 响应式系统 Vue 的响应式系统基于 Object.def…

vue实现试卷

vue实现试卷

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

vue nexttick实现

vue nexttick实现

Vue 中 nextTick 的实现原理 Vue 的 nextTick 是一个用于在下次 DOM 更新循环结束之后执行延迟回调的方法。它的核心实现依赖于 JavaScript 的事件循环机制。 基本…

vue实现datalist

vue实现datalist

使用 Vue 实现 HTML5 的 datalist 功能 HTML5 的 <datalist> 元素提供了一种自动完成输入框的功能,允许用户在输入时从预定义的选项列表中选择。以下是几种在…

vue搜索实现

vue搜索实现

Vue 搜索功能实现方法 基于计算属性的搜索 在 Vue 中可以通过计算属性实现简单的搜索功能。这种方式适合小型数据集,利用 JavaScript 的 filter 方法进行筛选。 data() {…