当前位置:首页 > 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:

vue element实现导航联动

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 实现导航与路由联动:

vue element实现导航联动

<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 实现侧边栏联动:

<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 实现目录的方法 在 Vue 项目中实现目录功能,可以通过以下几种方式实现,具体取决于需求和技术栈。 使用 Vue Router 实现路由目录 Vue Router 是 Vue.js 的官方路…

vue实现微博印象

vue实现微博印象

实现微博印象功能的核心思路 微博印象功能通常指用户发布微博后,系统自动分析文本内容并提取关键词或标签,以可视化形式展示。Vue实现该功能需要结合文本分析、关键词提取和前端渲染技术。 文本分析与关键词…

vue中实现显示和隐藏

vue中实现显示和隐藏

控制显示与隐藏的方法 在Vue中实现元素的显示和隐藏可以通过多种方式完成,以下是常见的几种方法: 1. 使用v-if指令v-if根据条件动态添加或移除DOM元素,适合需要频繁切换的场景。当条件为f…

vue实现双折线图

vue实现双折线图

实现双折线图的步骤 安装必要的依赖库(如 ECharts 或 Chart.js),这里以 ECharts 为例: npm install echarts --save 在 Vue 组件中引入 ECh…

vue实现发送值接受值

vue实现发送值接受值

Vue 实现父子组件传值 父组件向子组件传值(props) 父组件通过 v-bind 或简写 : 向子组件传递数据。子组件通过 props 接收数据。 父组件代码: <templat…

vue实现摘要

vue实现摘要

Vue 实现摘要的方法 在 Vue 中实现文本摘要功能通常涉及截取文本的前部分内容并添加省略号。可以通过计算属性、过滤器或自定义指令来实现。 计算属性实现 在 Vue 组件中定义一个计算属性,用于截…