VUE全局路由守卫

VUE全局路由守卫

重点!!!

大项目都会采用,因为需要验证用户是否登录等问题

是什么

在使用vue-router时会进行router跳转,跳转时,我们能对路由进行暂时拦截,进行一系列条件判断(比如用户登录情况,是不是vip用户等),在根据判断进行导航

怎么用

beforeEach

在**@/router/index**下进行配置

const router = new VueRouter({ ... })
router.beforeEach((to, from, next) => {
// ...
  //务必调用next(),不使用next,路由会阻塞
}
根据需求

⽤户访问在浏览⽹站时,会访问很多组件,当⽤户跳转
到 /personalcenter,发现⽤户没有登录,此时应该让⽤户登录才能查看,应该让⽤户跳转到登录⻚⾯,登录完成之后才可以查看个人中心的内容,这个时候全局守卫起到了关键的作⽤

使用配置
const router = new VueRouter({
routes:[
{
path: '/personalcenter',
name: 'personalcenter',
component: () => import('@/views/Personalcenter')
},
{
path: "/login",
name: "login",
component: () => import('@/views/Login')
},
  ]
})
// 全局守卫
router.beforeEach((to, from, next) => {
//⽤户访问的是'/notes'
if (to.path === '/personalcenter') {
//查看⼀下⽤户是否保存了登录状态信息
let user =JSON.parse(localStorage.getItem('user'))
if (user) {
//如果有,直接放⾏
next();
} else {
//如果没有,⽤户跳转登录⻚⾯登录
next('/login')
}
} else {
next();
}
})

这时候,在访问进入个人中心,如果没有登录的情况下,会自动跳转到登录页,如果已经登录就跳转到个人中心。

小结

这里进行的判断主要是通过localstorage里是否有user进行判定的,但是没有向后端发起验证是否有这个用户存在,以及用户名密码是否正确,这也是应该补足的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值