vue實現兄弟組件之間跳轉指定tab標簽頁

兄弟組件之間如何跳轉指定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;
        }
      } 
    })

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: