vue嵌套路由


在實際項目中我們會碰到多層嵌套的組件組合而成,但是我們如何實現嵌套路由呢?因此我們需要在 VueRouter 的參數中使用 children 配置,這樣就可以很好的實現路由嵌套。

index.html,只有一個路由出口

1 <div id="app">  
2     <!-- router-view 路由出口, 路由匹配到的組件將渲染在這里 -->  
3     <router-view></router-view>  
4 </div> 

 

main.js,路由的重定向,就會在頁面一加載的時候,就會將home組件顯示出來,因為重定向指向了home組件,redirect的指向與path的必須一致。children里面是子路由,當然子路由里面還可以繼續嵌套子路由。

 1 import Vue from 'vue'  
 2 import VueRouter from 'vue-router'  
 3 Vue.use(VueRouter)  
 4   
 5 //引入兩個組件  
 6 import home from "./home.vue"  
 7 import game from "./game.vue"  
 8 //定義路由  
 9 const routes = [  
10     { path: "/", redirect: "/home" },//重定向,指向了home組件  
11     {  
12         path: "/home", component: home,  
13         children: [  
14             { path: "/home/game", component: game }  
15         ]  
16     }  
17 ]  
18 //創建路由實例  
19 const router = new VueRouter({routes})  
20   
21 new Vue({  
22     el: '#app',  
23     data: {  
24     },  
25     methods: {  
26     },  
27     router  
28 })  

 

home.vue,點擊顯示就會將子路由顯示在出來,子路由的出口必須在父路由里面,否則子路由無法顯示。

1 <template>  
2     <div>  
3         <h3>首頁</h3>  
4         <router-link to="/home/game">  
5             <button>顯示<tton>  
6         </router-link>  
7         <router-view></router-view>  
8     </div>  
9 </template>  

 

game.vue

1 <template>  
2     <h3>游戲</h3>  
3 </template>

 

運行后的結果:

點擊顯示后:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM