兄弟组件之间如何跳转指定tab标签页

场景

index跳转至list的第三个标签栏并刷新列表

// index 

methods: { 
    ... 
    go(){
      this.$router.push({
        name: 'list',        //要跳转的路由name
        query: {
          myTab: 2
        }
      })
    },
}

// list 页  

<template>
    <div>
        <div v-show="selTab == 0"> 标签为0时显示的内容 </div>
        <div v-show="selTab == 1"> 标签为1时显示的内容 </div>
        <div v-show="selTab == 2"> 标签为2时显示的内容 </div>
    </div>
</template>
<script>
export default {
    data() {
        return {
            selTab: 0,
        }
    }
 
    mounted() {
        //...
        let myTab = this.$route.query.myTab;
        this.selTab = myTab;
        this.getList();    //你自己的 当标签为2时的获取列表的方法
    }
} 
</script>

vue.js实现tab页面的跳转    

在jQuery中,若想实现Tab页面的跳转,只需要将相应的class名,一般为active,加到对应的dom元素上,使其显示即可。

那么,如果我们选择使用vue.js,该如何实现Tab页的跳转呢?

思路与jQuery类似,即点击对应的Tab项时,使对应的class有效。因此,

(1) 要具备动态的class,如,:class="{active:index==x}"

(2) 要绑定点击事件及对应的函数,如,@click=activateTab(x)

(3) 当然你使用了变量index,自然要在vue实例中声明此变量。

tab标签

<ul class="tab-header clear-float-ml">
            <li class="name" @click="activateTab(0)" :class="{active:index==0}">New</li>
            <li class="name" @click="activateTab(1)" :class="{active:index==1}">Existed&Copy</li>
</ul>  

tab标签对应的展示的内容

<form class="tab-content new-tab" :class="{active:index==0}">
         
 </form>
 <div class="tab-content existed-tab active" :class="{active:index==1}">
           
 </div>

vue实例中对应的数据以及函数

<!-- vue 实例-->
    var vm=new Vue({
      el:'#management',
      data:{
        index:0
      },
      methods:{
        activateTab:function(index_chosen){
          this.index=index_chosen;
        }
      } 
    })

以上为个人经验,希望能给大家一个参考,也希望大家多多支持阿兔在线工具。

点赞(0)

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部