1. 程式人生 > 程式設計 >淺談vue 二級路由巢狀和二級路由高亮問題

淺談vue 二級路由巢狀和二級路由高亮問題

第一層路由我寫在app.vue裡面。如圖所示:

淺談vue 二級路由巢狀和二級路由高亮問題

footer.vue:

淺談vue 二級路由巢狀和二級路由高亮問題

二級路由是這樣:

淺談vue 二級路由巢狀和二級路由高亮問題

index.js裡面的配置:

淺談vue 二級路由巢狀和二級路由高亮問題

效果圖:

淺談vue 二級路由巢狀和二級路由高亮問題

效果出來了,又出現新的問題,就是點選二級路由的時候,預設的二級路由高亮不會去掉,如圖所示:

淺談vue 二級路由巢狀和二級路由高亮問題

在網上看到別人用exact方法,即在預設的二級路由裡面加上exact,如圖所示:

淺談vue 二級路由巢狀和二級路由高亮問題

補充知識:vue - 子路由-路由巢狀

描述:子路由,也叫路由巢狀,採用在children後跟路由陣列來實現,數組裡和其他配置路由基本相同,需要配置path和component,然後在相應部分新增<router-view/>來展現子頁面資訊,相當於嵌入iframe。

淺談vue 二級路由巢狀和二級路由高亮問題

Home.vue

<template>
  <div class="hello">
    <h1>{{ msg }}</h1>
    <!-- 新增子路由導航 -->
    <p>導航 :
      <router-link to="/home">首頁</router-link> | 
      <router-link to="/home/one">-子頁面1</router-link> |
      <router-link to="/home/two">-子頁面2</router-link>
    </p>
    <!-- 子頁面展示部分 -->
    <router-view/>
  </div>
</template>

<script>
export default {
  name: 'Home',data () {
    return {
      msg: 'Home Page!'
    }
  }
}
</script>

<style scoped>
</style>

One.vue /Two.vue

<template>
 <div class="hello">
  <h1>{{ msg }}</h1>
 </div>
</template>

<script>
export default {
 name: "One",data() {
  return {
   msg: "Welcome to One!"
  };
 }
};
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1,h2 {
 font-weight: normal;
}
ul {
 list-style-type: none;
 padding: 0;
}
li {
 display: inline-block;
 margin: 0 10px;
}
a {
 color: #42b983;
}
</style>

index.js

import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/Home'
import One from '@/components/One' 
import Two from '@/components/Two'

Vue.use(Router)

export default new Router({
  routes: [
  {
    path: '/',// 預設頁面重定向到主頁
    redirect: '/home'
  },{
    path: '/home',// 主頁路由
    name: 'Home',component: Home,children:[ // 巢狀子路由
      {
        path:'one',// 子頁面1
        component:One
      },{
        path:'two',// 子頁面2
        component:Two
      },]
  }
  ]
})

以上這篇淺談vue 二級路由巢狀和二級路由高亮問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。