美文网首页
路由守卫

路由守卫

作者: 沃德麻鸭 | 来源:发表于2021-08-09 14:34 被阅读0次

路由守卫的格式

to:要去哪个页面

form:从哪个页面过来

next:是一个函数

router.beforeEach( (to,from,next)=>{

console.log( to,from )

next(  )     /   next( flase )          // 放行 或  禁止放行

 ) }

:路由守卫中一定要记得执行   next

通常需要满足的条件:

①登录用户不能再次回到 login

②没有登陆就不能访问除了login之外的其它页

路由前置守卫流程图 流程代码

有token 

分析:有token时就不能再跳到登录页面

如果to.path==='login'  就跳到主页页面 next( '/' ),如果要跳转的页面不是登录页面,就放行 next(  )

没有token

分析:没有token时,用户切换页面就要强制跳转到登录页面,让用户重新登陆获取新的token 

如果用户要去的地址刚好是登录页面(还有其它的不需要token也可以访问的页面),那么就放行,如果是其他页面就退出到登录页面

这里为了防止不需要用户携带token就可以访问的页面太多,不方便书写使用,将所有页面地址封装到了一个白名单空数组中,使用时,直接使用数组的 includes 方法,whiteList.inclueds( to.path ),如果为true,说明数组中包含不携带token 就可以访问的某一个页面,那么就放行 next( ),如果是false,那么就返回登录页面

( 代码中的异步请求表示,需要在有token的前提下,也就是成功跳转到主页面之前,先将用户信息保存到vuex中,这里在actions中写了两次异步请求,并且将两次结果通过展开运算符合并到一个对象中 )

相关文章

  • vue的路由守卫

    路由守卫分3种:全局守卫路由独享守卫组件内的路由守卫 1.全局守卫:beforeEachbeforeResolve...

  • 路由守卫

    路由守卫分为三种 全局守卫: 路由独享守卫卸载route里 组件内守卫:写在组件配置对象里

  • [VUE]动态的更新页面的Title

    首先可以用路由守卫 + VueRouter来实现路由守卫相关文档1.main.js里加入路由守卫 // 页面修改时...

  • vue学习笔记(八)导航守卫(全局守卫,路由独享,组件内守卫)

    导航守卫-全局守卫 导航守卫-路由独享 导航守卫-组件内守卫

  • vue-路由导航守卫&异步组件

    导航守卫包括全局导航守卫、路由守卫、组件局部守卫 全局导航守卫 在全局导航守卫中,每次路由的跳转他们三个都会被触发...

  • Vue嵌套路由和路由守卫

    嵌套路由 路由守卫

  • vue路由守卫

    概念 路由守卫,官网也叫导航守卫,所谓导航,就是路由正在发生变化 路由守卫,主要就是用来通过跳转或取消的方式守卫导...

  • vue学习(52)vue-router(4)

    路由守卫作用:对路由进行权限控制分类:全局守卫、独享守卫、组件内守卫全局守卫(我们可以在meta中配置一些信息) ...

  • 路由

    全局守卫就是每一个路径进来都会经过这个全局守卫的处理 单路由守卫就是把守卫指定给某一个路由 组件内路由就是把守卫放...

  • vue-router 常见导航守卫

    全局守卫vue-router全局有三个守卫 路由独享守卫如果你不想全局配置守卫的话,你可以为某些路由单独配置守卫 ...

网友评论

      本文标题:路由守卫

      本文链接:https://www.haomeiwen.com/subject/kpgnvltx.html