首页 > 代码库 > vue嵌套路由

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>

 

运行后的结果:

技术分享

点击显示后:

技术分享

 

vue嵌套路由