嵌套路由讲解
【摘要】 一、前言路由嵌套,即在当前路由中注册子路由,形成父子路由,并在父路由中显示子路由对应的组件。子路由内也可以注册它的子路由,一直下去就可以形成一个庞大的“路由家族”。简单来说,就是在一个路由的页面下,继续使用路由加载新的组件;可以将嵌套路由理解为父子路由,常见的多导航界面通常就是由多层嵌套的组件组合而成。嵌套路由还有一个优点,就是让新的页面内容展示在父组件的占位符(即router-view标...
一、前言
路由嵌套,即在当前路由中注册子路由,形成父子路由,并在父路由中显示子路由对应的组件。子路由内也可以注册它的子路由,一直下去就可以形成一个庞大的“路由家族”。
简单来说,就是在一个路由的页面下,继续使用路由加载新的组件;可以将嵌套路由理解为父子路由,常见的多导航界面通常就是由多层嵌套的组件组合而成。
嵌套路由还有一个优点,就是让新的页面内容展示在父组件的占位符(即router-view
标签)中,这样有利于页面结构的搭建,结构清晰。
那么,如何注册子路由呢?
Vue
路由定义中需要用到一个children
属性,其值为数组,数组中的每一项对应一个子路由。
二、码上谈兵
示例代码如下:
<template id="tmpl">
<div>
<h1>这是 Account 组件</h1>
<router-link to="/account/login">登录</router-link>
<router-link to="/account/register">注册</router-link>
<router-view></router-view>
</div>
</template>
路由配置文件如下:
routes: [
{
path: '/account',
component: account,
// 使用 children 属性,实现子路由,同时,子路由的 path 前面,不要带 / ,否则永远以根路径开始请求,这样不方便去理解URL地址
children: [
{ path: 'login', component: login },
{ path: 'register', component: register }
]
}
// { path: '/account/login', component: login },
// { path: '/account/register', component: register }
]
还可以优化以上处理逻辑,在home路由对应的组件加载到页面时,若需要默认加载一个子路由时,可以做一个重定向,在home路由中redirect:"重定向的子路由网址"
。这个时候加载home页面时默认会加一个子路由。
代码:默认显示home2
{
path:"/home",
name:"home",
component:()=>import('../views/home/index.vue'),
redirect:"/home/home2",//当网址为/home时重定向到/home/home2
children:[
{
path:"home1",
name:"home1",
component:()=>import('../views/home/home1/index.vue')
},
{
path:"home2",
name:"home2",
component:()=>import('../views/home/home2/index.vue')
},
{
path:"home3",
name:"home3",
component:()=>import('../views/home/home3/index.vue')
},
]
}
页面:当我们网址为localhost:8080/home
时自动转跳到localhost:8080/home/home2
,这时子路由home2对应的组件加载到home中。
三、拓展阅读
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)