iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >vue中elementUI如何使用tabs与导航栏联动
  • 502
分享到

vue中elementUI如何使用tabs与导航栏联动

2024-04-02 19:04:59 502人浏览 安东尼
摘要

这篇文章主要介绍了Vue中elementUI如何使用tabs与导航栏联动,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。不使用tabs标签页时

这篇文章主要介绍了Vue中elementUI如何使用tabs与导航栏联动,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

不使用tabs标签页时,点击导航菜单,router-view映射相应的组件即可显示页面。但我们想在点击导航栏时在tabs中映射相应的组件,这就需要使用tabs组件
在slider.vue中点击路由后,把当前选择的路由@select使用bus传出去

<el-menu class="sidebar-el-menu" :default-active="onRoutes" :collapse="collapse" background-color="#eeefef" text-color="#666" active-text-color="#20a0ff" unique-opened router @select="addTab">

 <!-- 一级菜单 -->
  <template v-for="item in slidebarData" >
  <el-submenu v-if="item.subs && item.subs.length" :index="item.index" :key="item.index">
   <template slot="title"><i :class="item.icon"></i><span>{{item.title}}</span></template>

   <!-- 二级菜单 -->
   <template v-for="itemChild in item.subs">
   <el-submenu v-if="itemChild.subs && itemChild.subs.length" :index="itemChild.index" :key="itemChild.index" class="erji">
    <template slot="title"><i :class="itemChild.icon"></i><span>{{itemChild.title}}</span></template>

    <!-- 三级菜单 -->
    <el-menu-item v-for="itemChild_Child in itemChild.subs" :index="itemChild_Child.index" :key="itemChild_Child.index">
    <i :class="itemChild_Child.icon"></i><span slot="title">{{itemChild_Child.title}}</span>
    </el-menu-item>
   </el-submenu>

   <el-menu-item v-else :index="itemChild.index" :key="itemChild.index"><i :class="itemChild.icon"></i><span slot="title">{{itemChild.title}}</span></el-menu-item>
   </template>
  </el-submenu>

  <el-menu-item v-else :index="item.index" :key="item.index"><i :class="item.icon"></i><span slot="title">{{item.title}}</span></el-menu-item>
  </template>

 </el-menu>

使用bus把路由信息传出

import bus from '../common/bus';
methods: {
 addTab(key,keyPath) {
 console.log(key,keyPath)
 bus.$emit('navPath',keyPath)
 }
},

在tabs.vue中接收

<template>
 <div id="tabs">
 <el-tabs type="card" v-model="tabsVal" @tab-remove="closeTab" @tab-click="tabclick">
  <el-tab-pane v-for="item in tabList" :key="item.name" :name="item.name" :label="item.title" :closable="item.closable" >
        <component :is="item.component"></component>
      </el-tab-pane>
 </el-tabs>
 </div>
</template>

<script>
 import searchFor from '../page/ContentManagement/Class/searchFor.vue';
 import bus from '../common/bus';
 export default {
 data() {
  return {
  inputVisible: false,
  navPath: '',
  tabsVal: "searchFor",
  tabList: [
   {
        title: '热门搜索',
        name: 'searchFor',
        disabled: true,
        closable: false,
        component: searchFor
      }
  ]
  }
 },
 methods: {
  closeTab(tag) {//关闭tabs
  var tabListName = []
  for(let i = 0; i < this.tabList.length; i++){
   tabListName[i] = this.tabList[i].name;
  }
  console.log(tabListName)
  this.tabList.splice(tabListName.indexOf(tag), 1);
  this.tabsVal = "searchFor";
  this.$router.push("searchFor");
  },
  tabclick(val) {
  console.log(val)
  this.$router.push(val.name);
  //点击tabs触发路由跳转,到相应路由
  }
 },
 mounted () {
     bus.$on('navPath',(name,val) =>{//处理传过来的值
      console.log(name)
       var titname;
       if(name[name.length -1] == 'searchFor'){
        titname = '热门搜索'
       }else if(name[name.length -1] == 'Courier1'){
        titname = '套课列表'
       }else if(name[name.length -1] == 'Courier2'){
        titname = '小节列表'
       }else if(name[name.length -1] == 'Courier3'){
        titname = '套课分享'
       }
       if (this.tabList.filter(f => f.name == name[name.length -1]) == 0) {
        var component = resolve => require([`../page/ContentManagement/${name[0]}/${name[name.length -1]}`], resolve)//合伙人管理
        this.tabList.push({
          title: titname,
          name: name[name.length -1],
          disabled: false,
          closable: true,
          component: component
        })
       }
       this.tabsVal = name[name.length -1]
     });
    }
 }
</script>

<style scoped>
 #tabs {
 position: fixed;
 right: calc(2vw - 2px);
 top: 100px;
 z-index: 5;
 width: calc(96% - 189px);
 height: 38px;
 background: #f0f0f0;
 border-bottom: 4px solid #ccc;
 border-top: 4px solid #ccc;
 padding-left: 10px;
 }
 
 .el-tag {
 margin: 3px;
 }
 
</style>

感谢你能够认真阅读完这篇文章,希望小编分享的“vue中elementUI如何使用tabs与导航栏联动”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网html频道,更多相关知识等着你来学习!

--结束END--

本文标题: vue中elementUI如何使用tabs与导航栏联动

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

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

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

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

下载Word文档
猜你喜欢
  • vue中elementUI如何使用tabs与导航栏联动
    这篇文章主要介绍了vue中elementUI如何使用tabs与导航栏联动,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。不使用tabs标签页时...
    99+
    2024-04-02
  • vue elementUi中的tabs标签页如何使用
    本文小编为大家详细介绍“vue elementUi中的tabs标签页如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue elementUi中的tabs标签页如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路...
    99+
    2023-07-05
  • react如何实现导航栏二级联动
    这篇文章给大家分享的是有关react如何实现导航栏二级联动的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下效果图js代码import { Component } ...
    99+
    2023-06-29
  • react如何实现侧边栏联动头部导航栏效果
    目录实现思路路由表侧边栏渲染容器组件(侧边栏)store头部导航栏容器组件UI组件总结项目中使用react+antd design+redux+react-reouter-dom 实...
    99+
    2023-03-12
    react侧边栏 react侧边栏联动 react头部导航栏效果
  • Vue如何实现侧边导航栏于Tab页关联
    这篇文章主要为大家展示了“Vue如何实现侧边导航栏于Tab页关联”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue如何实现侧边导航栏于Tab页关联”这篇文章吧。技术栈侧边栏用Antdtab使用...
    99+
    2023-06-25
  • vue如何根据权限生成动态路由、导航栏
    目录基本思路相关代码基本思路 1、创建vueRouter,用公共路由实例化 2、创建需要根据权限筛选的路由对象(在路由对象,添加必要的权限判断字段) 3、登录完成,由后端配合返回当前...
    99+
    2024-04-02
  • vue如何实现拖动左侧导航栏变大变小
    这篇文章给大家分享的是有关vue如何实现拖动左侧导航栏变大变小的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下<template>  <div> &...
    99+
    2023-06-29
  • 如何写移动端惯性滑动或回弹Vue导航栏组件
    本篇文章为大家展示了如何写移动端惯性滑动或回弹Vue导航栏组件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。先看效果 好的,开始废话了,实习差不多3个月了...
    99+
    2024-04-02
  • 如何在Vue中设置导航栏元素间的间隔
    Vue.js是一种流行的JavaScript框架,用于创建单页应用程序。其中一个常见的组件是导航栏,它通常用于网站的主导航,包括链接到各个页面的菜单项。在Vue中,导航栏由一系列元素组成,这些元素可以具有间隔,本文将介绍如何在Vue中设置导...
    99+
    2023-05-14
  • 如何使用html+css+js实现导航栏滚动渐变效果
    本篇内容主要讲解“如何使用html+css+js实现导航栏滚动渐变效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用html+css+js实现导航栏滚动渐变效果”吧!实现:1.定义导航栏...
    99+
    2023-07-05
  • 如何使用css代码制作网站导航栏
    这篇文章主要介绍了如何使用css代码制作网站导航栏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   垂直导航栏   <!DOCT...
    99+
    2024-04-02
  • vue中如何使用elementUI表格动态行合并
    目录vue 使用elementUI表格动态行合并需求背景vue elementUI动态删除表格当前行内容具体步骤实现方法vue 使用elementUI表格动态行合并 需求背景 在开发...
    99+
    2022-11-13
    vue使用elementUI vue elementUI表格 elementUI表格动态行合并
  • 如何使用css3制作炫酷的导航栏效果
    本篇内容介绍了“如何使用css3制作炫酷的导航栏效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • 如何将Android应用中导航栏在分页中显示
    今天就跟大家聊聊有关如何将Android应用中导航栏在分页中显示,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。当页面条目过多的时候需要分页,要在布局中显示出分页的相关布局,使用and...
    99+
    2023-05-31
    android roi
  • 如何使用css3制作动感导航条
    这篇文章主要介绍“如何使用css3制作动感导航条”,在日常操作中,相信很多人在如何使用css3制作动感导航条问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用css3制作...
    99+
    2024-04-02
  • vue3中使用ant-design-vue的layout组件实现动态导航栏和面包屑功能
    目录0 前言1 准备工作1.1 安装ant-design-vue1.2 安装图标组件包2 选择组件3 路由文件4 Vue导航页面5 最终效果0 前言   &nbs...
    99+
    2023-01-29
    vue3使用ant-design-vue实现动态导航栏 vue3使用ant-design-vue
  • Vue中使用elementui与Sortable.js实现列表拖动排序
    本文实例为大家分享了使用elementui与Sortable.js实现列表拖动排序的具体代码,供大家参考,具体内容如下 一、安装使用Sortable.js 1、安装 cnpm ins...
    99+
    2024-04-02
  • 如何使用html和CSS3制作简单侧边导航栏
    这篇文章给大家分享的是有关如何使用html和CSS3制作简单侧边导航栏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下效果图:html:XML/HTML Code复制内...
    99+
    2024-04-02
  • Android如何使用Scroller实现一个可向上滑动的底部导航栏
    这篇文章主要介绍了Android如何使用Scroller实现一个可向上滑动的底部导航栏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。看下效果:首先这个控件是滑动的肯定就会用到...
    99+
    2023-05-31
    android
  • Android中如何使用RadioGroup和Fragment实现底部导航栏的功能
    小编给大家分享一下Android中如何使用RadioGroup和Fragment实现底部导航栏的功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在一些购物商城中...
    99+
    2023-06-15
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作