路由守卫
router.beforeEach((to,from,next) => {
console.log('to:', to)
//第一步:是否需要鉴权
let flag = to.matched.some(item => item.meta.auth)
if (flag) {
//第二步:获取token
const token = sessionStorage.getItem('token');
if (!token) {
return next({
//要跳转的路由
path: '/login',
//通过query携带要传递的参数,query是一个对象
query: {
redirect:to.fullPath
}
})
}
//有token,就直接放行
next()
} else {
next()
}
})
在组件中:
let {redirect}=this.$route.query
this.$router.push({path:redirect})
//路由守卫
router.beforeEach((to,from,next) => {
console.log('to:', to)
//第一步:是否需要鉴权
let flag = to.matched.some(item => item.meta.auth)
if (flag) {
//第二步:获取token
const token = sessionStorage.getItem('token');
if (!token) {
return next({
//要跳转的路由
path: '/login',
//通过query携带要传递的参数,query是一个对象
query: {
redirect:to.fullPath
}
})
}
//有token,就直接放行
next()
} else {
next()
}
})
在组件中:
let {redirect}=this.
r
o
u
t
e
.
q
u
e
r
y
t
h
i
s
.
route.query this.
route.querythis.router.push({path:redirect})