前端面试——Vue篇(导航守卫)

1.为什么有导航守卫?

我们想通过直接访问一个url而去得到登录后的页面,这显然是不严谨的,为了让其严谨起来,我们通过设置路由路由导航守卫(也就是拦截),在登录之前做一个拦截判断。

2.所有不同类型的守卫都有三个参数:

to:即将要进入的路由对象

from:当前离开的路由

next:是一个方法,可以接收参数。这个方法是必须调用。如果不使用就跳转不过去。你可以吧next看做一个保安,必须要跟next打个招呼才可以通过。


next()    ==> 就是告诉保安要过去,去哪儿里就是to

next(false)==> 可以不通过,中断跳转

next('./XX') ==>就意思是保安不让过,你可以去另外一个设置好的地方


 3.导航守卫有:

全局导航(全局情况下使用):

Router.beforeEach

Router.afterEach

组件内导航(单独组件内使用):

beforeRouteEnter

beforeRouteUpdate

beforeRouterLeave

路由独享(想在好几个组件内使用):

beforeEnter

补充:(举个全局导航守卫的例子)

router.beforeEach((to, from, next) => {
 if (to.path === '/login') return next()
 const tokenStr = window.sessionStorage.getItem('token') 
 if (!tokenStr) return next('/login')
 next()
})

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值