美文网首页
Vue-router 路由拦截

Vue-router 路由拦截

作者: 骑着母猪去买菜 | 来源:发表于2018-09-11 23:27 被阅读0次

路由拦截

当某些页面需要权限访问时,可以使用路由拦截对用户权限进行判断。

实现

在自定义路由时添加自定义字段 requireAuth,用于判断用户是否已经登录,已经登录的用户可以跳转,否则将重定向到登录页面。

const router = new Router({
    routes:[
        {
            path: '/',
            name: 'Index',
            compnent: Index,
            meta: {
                requireAuth: true
            }
        }
    ]
})

vue-router 提供了导航守卫来通过跳转或取消的方式守卫导航。

导航表示路由正在发生改变,使用 router.beforeEach()注册全局守卫,在每次导航时判断用户是否已经登录。

router.forEach((to, from, next) => {
    if (to.some(r => r.meta.requireAuth)){
        if (store.state.token){
            next()
        } else {
            next({
                path:'/user/login',
                query:{ redirect:to.fullPath }
            })
        }
    } else {
        next()
    }
})

路由拦截经常会与http请求拦截及响应拦截配合使用

相关文章

网友评论

      本文标题:Vue-router 路由拦截

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