Vue-router 路由拦截

路由拦截

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

实现

在自定义路由时添加自定义字段 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请求拦截及响应拦截配合使用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,678评论 25 708
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,995评论 2 59
  • 学习目的 学习Vue的必备技能,必须 熟练使用 Vue-router,能够在实际项目中运用。 Vue-rout...
    _1633_阅读 92,462评论 3 58
  • “这是最好的时代,这是最坏的时代”盗用那个名著中的话,我很想说,这是最好的年纪,这是最坏的年纪。 我年轻,我有时...
    风雨之夕阅读 408评论 2 0
  • http://m.juzimi.com/ju/312317 沉重。
    尘世苦海阅读 170评论 0 1