Vue 拦截路由

拦截器 

1.拦截路由 

// 拦截器
// 路由拦截
// to去哪个路由,from 从哪里来,next下一步

router.beforeEach((to,from,next)=>{
// 如果是去login1
if (to.path == '/login1'){
//进行下一步
next();

} else{
//如果localStorage有值
if (localStorage.getItem('user_id')) {
next()
//否则回login1
}else{
next('/login1')
}

}
})

最初的代码  我们进行优化 ,优化完

router.beforeEach((to, from, next) => {
if (to.path == '/login1' || localStorage.getItem('user_id')) {
next()
} else {
alert('请登录')
next('/login1')
}
})

优化完 看上去更精简

2拦截请求 

axios.interceptors.request.use(function (hh) {
if (!localStorage.getItem('user_id')){
router.path({
name:'/login1'
})
} else{
hh.headers.user_id=localStorage.getItem('user_id')// 将localStorage.getItem('user_id') 发送到http的请求头里

}

return hh
},function (error) {

})
原文地址:https://www.cnblogs.com/pp8080/p/11828618.html