vue导航守卫

导航守卫权限管理

路由配置

router = new Router({
  routes:[
    {
      path:"/",
      name:"index",
      component:Index
    },
    {
      path:"/login",
      name:"login",
      component:Login
    },
    {
      path:"/pro",
      name:"pro",
      component:Pro,
      meta:{ requiresAuth: true }//随意写的
    }
]

})

1.登陆权限

router.beforeEach(function(to,from,next){
    console.log(to)
    if(true){//表示登陆状态
        console.log(from,to)
        if(to.path =='/login'){
          next("/")
        }else{
          next()
        }
    }else{
      if(to.path!='/login'&& to.meta.requiresAuth){
        next({path:'/login'})   
      }else{
        next()//放行了,不能少,否则不会执行跳转
      }
    }
})

2.登陆权限,更完整

router.beforeEach(function(to, from, next){
    if(false){ //false表示没登陆,true表示登陆
      console.log(from,to)
      console.log(to.path == "/login")
        console.log(to.meta.requiresAuth)
       if(to.path =="/"){
          next()
         }else {
          if(to.meta.r){//表示是否需要权限验证
            next()
          }else{
            if(to.path =="/login"){
               next()
            }else{
              alert("没有权限,请用管理员登陆")
              next({path:'/login'})}
          }
         }
    }else{
       to.path!="/login"? next({path:'/login'}):next()
    } 
})
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 导航解析流程 导航被触发。 在失活的组件里调用离开守卫。 调用全局的 beforeEach 守卫。 在重用的组件里...
    喜欢未来你的我阅读 546评论 0 1
  • 1、全局守卫 router.beforeEach全局前置守卫 next: Function:一定要调用该方法来 r...
    _conquer_阅读 452评论 0 1
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,833评论 25 708
  • 下课铃响了。“小K,你真厉害!”“祝贺你,小K!”一连串的祝福与夸奖频频朝向班里那个高大、白净的男孩,羞怯的红云微...
    梦里飘香阅读 151评论 0 0
  • 上大学这几年,一个人辗转于学校、家里、普洱,孤单到忘了自己也可以软弱。 总是背起背包,拿起行囊,一个人奔走。那些沉...
    存存sugar阅读 180评论 0 0