vue router权限

全局拦截 beforeEach(to, from,next)

  • to:router即将进入的路由对象
  • from:当前导航即将离开的路由
  • next:Function,进行管道中的一个钩子,如果执行完了,则导航的状态就是 confirmed (确认的);否则为false,终止导航。
{
    path: '/login',
    meta: { title: '登录', isPublic: true },
    component: () => import('../components/Login.vue'),
  }
// 在meta上添加isPublic:true  全局拦截时校验否false或者不写时需要校验是否登录

router.beforeEach((to, from, next) => {
  //路由发生变化修改页面title
  if (to.meta.title) {
    document.title = to.meta.title
  }
  //全局拦截是否登录
  if (!to.meta.isPublic && !localStorage.token) {
    return next('/login')
  }
  next()
})

单个路由拦截 beforeEnter(to, from,next)

{
    path: '/release/miner',
    meta: { title: '发布矿机' },
    beforeEnter: function(to, from, next) {
      if (localStorage.miners_level < 1) {
        next(false)   //或者返回你需要的地址
        return alert('xxxxx')
      }
      next()
    },
    component: () => import('../views/ReleaseMiner.vue'),
  }

你可能感兴趣的:(vue,vue)