1. 程式人生 > >vue巢狀路由(二)

vue巢狀路由(二)

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

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


<div id="app">
    <!-- router-view 路由出口, 路由匹配到的元件將渲染在這裡 -->
    <router-view></router-view>
</div>
main.js,路由的重定向,就會在頁面一載入的時候,就會將home元件顯示出來,因為重定向指向了home元件,redirect的指向與path的必須一致。children裡面是子路由,當然子路由裡面還可以繼續巢狀子路由。
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
 
//引入兩個元件
import home from "./home.vue"
import game from "./game.vue"
//定義路由
const routes = [
    { path: "/", redirect: "/home" },//重定向,指向了home元件
    {
        path: "/home", component: home,
        children: [
            { path: "/home/game", component: game }
        ]
    }
]
//建立路由例項
const router = new VueRouter({routes})
 
new Vue({
    el: '#app',
    data: {
    },
    methods: {
    },
    router
})
home.vue,點選顯示就會將子路由顯示在出來,子路由的出口必須在父路由裡面,否則子路由無法顯示。
<template>
    <div>
        <h3>首頁</h3>
        <router-link to="/home/game">
            <button>顯示<tton>
        </router-link>
        <router-view></router-view>
    </div>
</template>
game.vue
<template>
    <h3>遊戲</h3>
</template>

執行後的結果:


點選顯示後: