上一次給大家簡單說了下什么是動態路由現在我們來講講嵌套路由。
1.嵌套路由的使用場景是什么呢?
大家都知道選項卡,在選項卡中,頂部有數個導航欄,中間的主體顯示的是內容;這個時候,整個頁面是一個路由,然后點擊選項卡切換不同的路由來展示不同的內容,這個時候就是路由中嵌套路由。
2.具體是怎么實現的?
① 為了演示,我們現在view文件夾下新建一個title1.vue和title2.vue用來存放不同的內容
代碼如下:
<template>
<div class="title1">
這里是title1的內容
</div>
</template>
<script>
export default {
}
</script>
<style scoped>
</style>
代碼如下:
<template>
<div class="title2">
這里是title2的內容
</div>
</template>
<script>
export default {
}
</script>
<style scoped>
</style>
② 現在我們在router 》 index.js 中將這上面兩個新建的組件引入進來并填寫路徑,這里的Title1和Title2是作為test.vue頁面的子路由,所以要寫在children屬性下
index.js
import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
//引入組件
import Test from "@/view/test"
import Title1 from "@/view/title1"
import Title2 from "@/view/title2"
Vue.use(Router)
export default new Router({
routes: [
{
// path: '/test/:testId',
path:'/test/:testId/name/:testName',
name: 'HelloWorld',
//填寫路由參數
component: Test,
children:[{
path: 'title1',
name:'title1',
component: Title1
},
{
path: 'title2',
name:'title2',
component: Title2
}
]
}
]
})
注意:這里需要提個醒的就是填寫children子路由的path不要加/
③ 然后我們再去到test.vue中敲:
在這里提個醒,在to后面寫路由路徑的時候,一定到帶上絕對路徑,也就是要把test這個父路由路徑寫進去"/test/title1"
test.vue代碼:
<template>
<div class="test">
<!-- 動態路由-->
this is id:{{$route.params.testId}}
<br/>
this is name:{{$route.params.testName}}
<br/>
<!--嵌套路由-->
<router-link to="/test/title1">標題1</router-link>
<router-link to="/test/title2">標題2</router-link>
<router-view></router-view>
</div>
</template>
<script>
export default {
name:'Test',
data() {
return {
msg: 'hello vue'
}
}
}
</script>
<style scoped>
</style>
④ 最后我們進入瀏覽器點擊不同的標題就可以看到不同內容的展示
怎么樣是不是很簡單,大家一起努力向前沖吧!!!!!!