Vue 路由拦截

路由拦截应用场景

图片.png

图片.png

如图所示,当我们进入一个webapp时,点到我的,表示进入个人中心,但是此时用户是首次使用的话,他是没有登录,这时候是不能直接跳转到个人中心页面的。我们希望他去登录页面登录以后在进行操作,这时就需要用到路由拦截。vue文档中称为导航守卫

具体使用

首先在路由定义时加入requireAuth:true

{
    path: '/systemNews',
    component: SystemNews,
    meta: {
      title:'系统消息',
      requireAuth: true //加在这里
    }
  }

配置好路由之后,使用vue导航守卫

router.beforeEach((to, from, next) => {
  if (to.matched.some(record => record.meta.requireAuth)) {
      //if (store.state.token) {
      //  next();
      //}
      if (isLogin) {
          next();
      }else {
          next({
              path: '/login',
              query: {redirect: to.fullPath}
          })
      }
  }else {
      next();
  }
})
to.matched.some(record => record.meta.requireAuth) 
这个表示如果你在定义路由的时候requireAuth为ture则进行路由拦截

代码很简单,能直白的看出功能,isLogin表示用户是否登录,如果登录通过验证,就next()继续路由跳转,如果没有通过验证就跳转到登录页面,并且附加上要跳转的地址query: {redirect: to.fullPath},以便登录后能自动会跳到原本要跳转的路由,也算小小的用户体验。当然你如果喜欢可用vuex来验证也行。

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

推荐阅读更多精彩内容

  • 来源:http://www.cnblogs.com/opendigg/p/6513510.html UI组件 el...
    YU_XI阅读 7,865评论 0 26
  • vue-login-intercept 一个 Vue.js 的小demo 介绍 项目地址,有喜欢的欢迎 star ...
    无亦情阅读 14,173评论 4 21
  • 忘不了那些年 您给我买过的书 《悲惨世界》《暴风骤雨》 扉页上 您用楷书 题写一句 闺女 开卷有益 爸爸 今晩没有...
    葆蕙阅读 2,944评论 0 4
  • 题记: 时近国庆,学校将组织“爱与梦想″主题联欢。为给家乡美板块添一节目素材,根据当地名景及零碎传说,缀一童话故事...
    虎头山下的守望者阅读 3,984评论 4 3
  • 第二天,今天课程给我最大的启发是,若最求完美,等一切都准备好了再才开始,那永远不会有结果。那不然承认和接受自己的不...
    锋行印象阅读 1,488评论 0 0