在vue-router(一)中已经提到过,路由匹配的组件将会渲染到router-view/router-view中而在渲染的组件中,同样也可以通过嵌套路由渲染组件。div id=approuter-view/router-view/divconst home = {...
在vue-router(一)中已经提到过,路由匹配的组件将会渲染到<router-view></router-view>中
而在渲染的组件中,同样也可以通过嵌套路由渲染组件。
<div id="app">
<router-view></router-view>
</div>
const home = {
template: '<div>this is home</div>'
};
const router = new VueRouter({
routes: [{
path: '/home',
component: home
}
]
})
在App.vue中的<router-view>是最顶层的出口,用来渲染最高级路由匹配的组件,此时为home.vue组件。而在home.vue中,还可以渲染嵌套路由匹配到的组件。
const home = {
template: `
<div>
<span>this is home</span>
<router-view></router-view>
</div>`
};
const router = new VueRouter({
routes: [{
path: '/home',
component: home,
children: {
path: 'home1',
component: () => import('../views/home/home1.vue'),
name: 'home1',
meta: {
title: 'home1',
}
}
}]
})
在home.vue中使用<router-view>,可以在嵌套的出口中渲染组件,需要在VueRouter的参数中使用children配置
children的配置与routes的配置类似,都需要path,component,此外还有meta属性
定义属性如下所示
{
path: '/permission',
component: Layout,
redirect: '/permission/index', //重定向地址,在面包屑中点击会重定向去的地址
hidden: true, // 不在侧边栏显示
alwaysShow: true, //一直显示根路由
meta: { roles: ['admin','editor'] }, //你可以在根路由设置权限,这样它下面所有的子路由都继承了这个权限
children: [{
path: 'index',
component: ()=>import('permission/index'),
name: 'permission',
meta: {
title: 'permission',
icon: 'lock', //图标
roles: ['admin','editor'], //或者你可以给每一个子路由设置自己的权限
noCache: true // 不会被 <keep-alive> 缓存
}
}]
}
原则上,有多少级路由嵌套就要有多少个<router-view>
沃梦达教程
本文标题为:Vue-vue-router(二)嵌套路由
基础教程推荐
猜你喜欢
- 关于Ajax跨域问题及解决方案详析 2023-02-23
- 使用ajax跨域调用springboot框架的api传输文件 2023-02-23
- cocos creator游戏实现loading加载页面,游戏启动加载动画 2022-10-29
- 在实战中可能碰到的几种ajax请求方法详解 2023-02-01
- Javascript Bootstrap的网格系统,导航栏和轮播详解 2023-08-11
- JS滚动到顶部踩坑解决记录 2023-07-10
- Ajax+smarty技术实现无刷新分页 2022-12-15
- Ajax发送和接收请求 2022-12-15
- HTML clearfix清除浮动讲解 2022-11-20
- uniapp开发微信小程序自定义顶部导航栏功能实例 2022-10-21