vue子路由跳轉實現tab選項卡效果

tab選項卡的佈局在項目中是很常見的,在後臺管理系統中左邊是導航欄固定,右邊是對應的頁面,每次點擊左邊的標題,隻有右面的對應頁面在切換,而vue要做tab選項卡,推薦使用實現a標簽的效果,然後使用實現插槽的效果,把對應的頁面 “塞” 進去,具體實現看下面的案例:

vue文件

<template>
    <div class="box">
        <!-- nav標題,路由指向 -->
       <div class="left">
           <router-link :to="item.src" v-for="(item,index) in navData" :key="index">{{item.title}}</router-link>
       </div>
       <div class="right">
           <!-- 路由跳轉的位置 -->
           <router-view></router-view>
       </div>
    </div>
</template>
<script>
export default {
    name:"Index",
    data(){
        return{
            navData:[
                {
                    title:"title一",
                    src:"/"
                },
                {
                    title:"title二",
                    src:"/nav2"
                },
                {
                    title:"title三",
                    src:"/nav3"
                }
            ]
        }
    }
}
</script>
<style scoped>
    .box{
        width: 100%;
        height: 100%;
        display: flex;
        background: rgba(0,0,0,.8)
    }
    .left{
        width:200px;
        height: 100%;
        text-align: center;
        background: rgba(0,0,0,.4);
        padding: 20px;
    }
    .left a{
        text-decoration: none;
        display: block;
        margin-top: 20px;
        width: 100%;
        color: #fff;
    }
    .right{
        flex: 1;
        padding: 20px;
        color: #fff;
    }
</style>

router.js

import Vue from 'vue'
import Router from 'vue-router'
import Index from './views/Index.vue'
import nav1 from './components/Index/nav1.vue'
import nav2 from './components/Index/nav2.vue'
import nav3 from './components/Index/nav3.vue'
Vue.use(Router)

export default new Router({
//去掉#
  mode: 'history',
  base: process.env.BASE_URL,
  routes: [
    {
      path: '/',
      //name: 'Index',
      component: Index,
      children:[
        {
          path:'',
          name:'nav1',
          component:nav1
        },
        {
          path:'nav2',
          name:'nav2',
          component:nav2
        },
        {
          path:'nav3',
          name:'nav3',
          component:nav3
        }
      ]
    }
  ]
})

註意:當在router.js中的routes中寫上name: 'Index',時在控制臺會有下面的警告,所以可以刪掉此句。

右邊要顯示頁面的內容

<!--  nav1.vue-->
    <template>
    <div>
        這是nav1
    </div>
</template>


<!--  nav2.vue-->
    <template>
    <div>
        這是nav2
    </div>
</template>


<!--  nav3.vue-->
    <template>
    <div>
        這是nav3
    </div>
</template>

效果圖

簡單的子路由跳轉實現tab選項卡效果就實現啦

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: