iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >vue怎么实现el-menu和el-tab联动
  • 321
分享到

vue怎么实现el-menu和el-tab联动

2023-07-06 02:07:53 321人浏览 安东尼
摘要

这篇文章主要讲解了“Vue怎么实现el-menu和el-tab联动”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue怎么实现el-menu和el-tab联动”吧!vue通过el-menus

这篇文章主要讲解了“Vue怎么实现el-menu和el-tab联动”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue怎么实现el-menu和el-tab联动”吧!

vue通过el-menus和el-tabs联动,实现点击侧边栏,页面内显示一行tab以及点击tab切换路由

实现效果如下

vue怎么实现el-menu和el-tab联动

vue怎么实现el-menu和el-tab联动

实现思路 左侧边栏添加点击事件/设置el-menu的路由模式,然后监听路由的变化,拿到的路由去改变el-tabs绑定的属性,然后改变el-tab-pane循环的数组,然后设置el-tabs的点击/删除事件,最终实现联动 首先使用vuex定义公共状态openTab以及activeIndexTab 也就是循环的数组和当前高亮

import Vue from "vue"import Vuex from "vuex"Vue.use(Vuex)export default new Vuex.Store({  state: {    openTab: [],    activeIndexTab: ''  },  mutations: {  //添加tab事件    add_tabs (state, data) {      state.openTab.push(data)    },    //删除    delete_tabs (state, name) {      let index = 0      for (let item of state.openTab) {        if (item.name === name) {          break        }        index++      }      state.openTab.splice(index, 1)    },    //设置高亮tab    set_active_index (state, index) {      state.activeIndexTab = index    },  },})

html模板

<el-menu> <div v-for="(item, index) in menuList" :key="index">   <el-menu-item :index="item.index" :class="{'isActive':activeIndex == item.index}" @click="routeTo(item)">     <i :class="['icon', item.name]"></i>     <span slot="title">{{ item.title }}</span>   </el-menu-item> </div></el-menu><el-tabs v-model="activeIndexTab" type="card" @tab-click="clickTab" @tab-remove="removeTab" closable> <el-tab-pane v-for="item of openTab" v-if="openTab.length" :key="item.title" :label="item.title" :name="item.name"> </el-tab-pane></el-tabs>

定义data函数中要用到的属性

data() { return {   activeIndex: "",   menuList:[     {"index":"1","title":"商户资料管理","name":"meansManage"},     {"index":"2","title":"商户订单管理","name":"payOrderManage"},     {"index":"3","title":"商户报表管理","name":"reportManage"},   ] }},

在vuex中取到el-tabs用到的属性

 computed: {   openTab () {     return this.$store.state.openTab   },   activeIndexTab: {     get () {       return this.$store.state.activeIndexTab     },     set (val) {       this.$store.commit('set_active_index', val)     }   }, },

路由配置信息如下

{  path: "/",  component: frame,  redirect: "/meansManage",  children: [    {      path: "/meansManage",      name: "meansManage",      meta:{title:'商户资料管理'},      component: () => import("../components/merchantManage/meansManage/index.vue")    },    {      path: "/payOrderManage",      name: "payOrderManage",      meta:{title:'商户订单管理'},      component: () => import("../components/merchantManage/payOrderManage/orderIndex.vue")    },    {      path:'/reportManage',      name:'reportManage',      meta:{title:'商户报表管理'},      component: () => import('../components/merchantManage/reportManage/index.vue')    }  ]},

随后监听路由变化在watch中

watch:{   '$route'(val){     let flag = false     this.openTab.forEach(tab => {       if (val.path == tab.name) {         this.$store.commit('set_active_index',val.path)         flag = true         return       }     })     if (!flag) {       this.$store.commit('add_tabs', {name: val.path , title: val.meta.title})       this.$store.commit('set_active_index', val.path)     }   } },

上面的代码大概意思就是,如果openTab中已经存在这个路由,则直接设置高亮tab,如果不存在,则先添加路由信息到openTab中,然后再设置高亮

当前页面刷新,需要保留一个tab也就是当前页的

mounted(){this.$store.commit('add_tabs', {name: this.$route.path , title: this.$route.meta.title})this.$store.commit('set_active_index', this.$route.path)}

设置tab的点击事件

clickTab (tab) {  this.$router.push({path: this.activeIndexTab})},removeTab (target) { //target当前被点击的name属性  if (this.openTab.length == 1) {    return  }  this.$store.commit('delete_tabs', target)  if (this.activeIndexTab === target) {    // 设置当前激活的路由    if (this.openTab && this.openTab.length >= 1) {      this.$store.commit('set_active_index', this.openTab[this.openTab.length - 1].name)      this.$router.push({path: this.activeIndexTab})    }  }},

感谢各位的阅读,以上就是“vue怎么实现el-menu和el-tab联动”的内容了,经过本文的学习后,相信大家对vue怎么实现el-menu和el-tab联动这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: vue怎么实现el-menu和el-tab联动

本文链接: https://www.lsjlt.com/news/357542.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue怎么实现el-menu和el-tab联动
    这篇文章主要讲解了“vue怎么实现el-menu和el-tab联动”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue怎么实现el-menu和el-tab联动”吧!vue通过el-menus...
    99+
    2023-07-06
  • vue实现el-menu和el-tab联动的示例代码
    vue通过el-menus和el-tabs联动,实现点击侧边栏,页面内显示一行tab以及点击tab切换路由 实现效果如下 实现思路 左侧边栏添加点击事件/设置el-menu的路由...
    99+
    2023-05-15
    el-menu和el-tab联动 el-menu el-tab
  • el-menu动态加载路由的实现
    先看需要实现的效果 这里有一级也有二级菜单,注意二级菜单的父目录(”选项设置“点击不会跳转,只是展开目录),然后点击去详情页,需要跳到一个隐藏的路由,不在菜...
    99+
    2023-05-15
    el-menu动态加载路由 el-menu动态路由
  • Vue el-menu 左侧菜单导航功能的实现
    目录引言一级菜单实现最简单的一级菜单设置菜单背景颜色和文字颜色设置选中后菜单文字颜色在菜单中加入图标二级菜单实现二级菜单修改分析【其实很简单】:三级菜单实现三级菜单实现点击菜单跳转小...
    99+
    2024-04-02
  • vue怎么实现动态添加el-input
    本文小编为大家详细介绍“vue怎么实现动态添加el-input”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue怎么实现动态添加el-input”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、效果图二、实现...
    99+
    2023-07-02
  • vue+el-menu实现菜单栏无限多层级分类
    本文实例为大家分享了vue+el-menu实现菜单栏无限多层级分类的具体代码,供大家参考,具体内容如下 思路:数据格式须为数组内部多层嵌套模式,利用递归渲染菜单栏数据实现菜单多层级分...
    99+
    2024-04-02
  • Vue中el-menu-item实现路由跳转的完整步骤
    目录场景:方法如下:补充:el-menu-item 实现水平导航栏,路由的跳转总结场景: 用了element-ui的el-menu 菜单 怎样实现路由跳转呢? 方法如下: 1,在e...
    99+
    2024-04-02
  • vue+el-menu如何实现菜单栏无限多层级分类
    这篇文章主要介绍了vue+el-menu如何实现菜单栏无限多层级分类,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下思路:数据格式须为数组内部多层嵌套模式,利用递归...
    99+
    2023-06-29
  • 怎么使用el-menu递归实现多级菜单组件
    今天小编给大家分享一下怎么使用el-menu递归实现多级菜单组件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 效果:2...
    99+
    2023-07-06
  • Vue如何实现省市区三级联动el-select组件
    这篇文章主要介绍“Vue如何实现省市区三级联动el-select组件”,在日常操作中,相信很多人在Vue如何实现省市区三级联动el-select组件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vu...
    99+
    2023-07-05
  • Vue动态数据实现 el-select 多级联动、数据回显方式
    目录动态数据 el-select 多级联动、数据回显多级联动select菜单(易懂)动态数据 el-select 多级联动、数据回显  父组件 <Pro...
    99+
    2024-04-02
  • vue 动态添加el-input的实现逻辑
    目录一、效果图二、实现逻辑一、效果图 二、实现逻辑 将需要动态添加的表单项项的绑定值存为一个数组以循环的方式展示form表单点击`+`按钮触发事件,向数组中新加一个item点击`-...
    99+
    2024-04-02
  • vue中$refs和$el怎么使用
    这篇文章主要介绍“vue中$refs和$el怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue中$refs和$el怎么使用”文章能帮助大家解决问题。用法:1、“$refs”用于给元素或子组...
    99+
    2023-06-29
  • vue+el-upload实现多文件动态上传
    vue+el-upload多文件动态上传,供大家参考,具体内容如下 使用场景 点击【添加/删除】,可动态增加/删除行数,并为每行上传附件,附件暂存前端,点击【上传】可以将所有附件和部...
    99+
    2024-04-02
  • Vue3 Element-plus和el-menu无限级菜单组件怎么封装
    对于element中提供给我们的el-menu组件最多可以实现三层嵌套,如果多一层数据只能自己通过变量去加一层,如果加了两层、三层这种往往是行不通的,所以只能进行封装效果图 一、定义数据MenuData.tsexport default [...
    99+
    2023-05-14
    Vue3 Element-plus el-menu
  • Vue el-table怎么实现右键菜单功能
    这篇文章主要介绍了Vue el-table怎么实现右键菜单功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue el-table怎么实现右键菜单功能文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-06-29
  • vue.js el-table虚拟滚动效果怎么实现
    今天小编给大家分享一下vue.js el-table虚拟滚动效果怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2023-07-04
  • vue+elementUI-el-table实现动态显示隐藏列方式
    目录vue elementUI-el-table动态显示隐藏列主要代码如下相关截图总结vue elementUI-el-table动态显示隐藏列 在实际工作场景中,我们在展示数据时,...
    99+
    2023-01-13
    vue elementUI el-table el-table动态显示隐藏列 vue动态显示隐藏列
  • vue中el-table实现自动吸顶效果(支持fixed)
    目录前言实现思路效果:使用:主要源码:前言 看了很多案例,从简单的角度,position:sticky,似乎是比较理想的选择,可是当el-table设置了fixed后,这里的fix...
    99+
    2024-04-02
  • Vue el-table组件怎么实现将日期格式化
    本篇内容介绍了“Vue el-table组件怎么实现将日期格式化”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!vue el-tab...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作