路由嵌套

97 阅读1分钟

背景

以home页面为例,有时候在home页面,我们希望既展示新闻News,也展示消息Message。切换路由,home组件本身的内容不变,但是其内部的News和Message切换。

此时,home是外层路由,而其内部的News和Message又是它的子路由,出现路由嵌套。

配置

页面配置

<template>
    <div>
        <h2>我是home组件内容</h2>
        <router-link :to="/home/news">新闻</router-link>
        <router-link :to="/home/message">消息</router-link>
        <router-view></router-view>
    </div>
</template>

注意:

  • 哪个组件里有路由跳转,必须用<router-link><router-view>
  • 嵌套路由中router-link的to属性需要是完整的,包含父的path

路由配置

export default {
    rules: [
        {
            path: '/home',
            component: Home,
            children: [
                {
                    path: '',
                    redirect: 'news'
                },
                {
                    path: 'news',
                    component: News
                },{
                    path: 'message',
                    component: Message
                }
            ]
        }
    ]
}

注意:

  • 通过children配置子路由,子的path不需要前边的/
  • 默认在父路由页面要展示子路由的内容,需要重定向,当url只有父路由,让重定向到某一子path,参考上图第一个child配置