Vue路由——路由嵌套和前置守卫
程序员文章站
2022-03-24 18:12:45
...
路由嵌套
main.js– 继续配置2级路由
一级路由path从/开始定义
二级路由往后path直接写名字, 无需 / 开头
嵌套路由在上级路由的children数组里编写路由信息对象
onst routes = [
// ...省略其他
{
path: "/find",
name: "Find",
component: Find,
children: [
{
path: "componentOne",
component: ComponentOne
},
{
path: "componentOne",
component: ComponentOne
},
{
path: "componentOne",
component: ComponentOne
}
]
}
// ...省略其他
]
声明导航router-link自带2个类名:
- router-link-exact-active (精确匹配) url中hash值路径, 与href属性值完全相同, 设置此类名
- router-link-active (模糊匹配) url中hash值, 包含href属性值这个路径
可以给这2个类名设置css样式来完成点击高亮效果
前置守卫
作用:路由跳转之前, 先执行一次前置守卫函数, 判断是否可以正常跳转
用法:在路由对象上使用固定方法beforeEach
const isLogin = true; // 登录状态(未登录)
router.beforeEach((to, from, next) => {
if (to.path === "/my" && isLogin === false) {
alert("请登录")
next(false) // 阻止路由跳转
} else {
next() // 正常放行
}
})
to 是目标
from 是来源
next() 放行, next(false)留在原地不跳转路由, next(path路径)强制换成对应path路径跳转
next()中可以放路径、配置对象、布尔值,如果不调用next()页面则一直停留在原地