路由守卫

摘要:
importVuefrom'vue'importRouterfrom'vue-router'//导入Login组件(注意,不要添加.vue后缀)importLoginfrom'@/components/login/Login'//导入首页组件importHomefrom'@/components/home/Home'//导入用户列表组件importUsersfrom'@/components/us
import Vue from 'vue'import Router from 'vue-router'

//导入 Login 组件(注意,不要添加 .vue 后缀)
import Login from '@/components/login/Login'
//导入首页组件
import Home from '@/components/home/Home'
//导入用户列表组件
import Users from '@/components/users/Users'
//导入权限列表组件
import Rights from '@/components/rights/Rights'
//导入角色列表组件
import Roles from '@/components/roles/Roles'
Vue.use(Router)

const router = newRouter({
  routes: [
    //children 用来配置子路由,将来匹配的组件会展示在 Home 组件的 router-view 中
{
      path: '/home',
      component: Home,
      children: [
        { path: 'users', component: Users },
        { path: 'rights', component: Rights },
        { path: 'roles', component: Roles }
      ]
    },
    { path: '/login', component: Login }
  ]
})

//全局导航守卫//所有的路由都会先走守卫//添加导航守卫之后,不管是访问哪个路由,都会执行beforeEach回调函数中的代码//因为所有的路由,都会经过该导航守卫,所以,就可以在这个导航守卫的回调函数中//判断有没有登录了
router.beforeEach((to, from, next) =>{
  //console.log('导航守卫在看门', to)
  //...

  if (to.path === '/login') {
    //如果访问的是login页面,直接放行,也就是任何人不管有没有登录
    //都可以访问登录页面
    //直接调用 next() 方法,表示:访问的是哪个页面,就展示这个页面的内容
next()
  } else{
    //访问的不是登录页面

    //判断用户是否登录成功,
    //1 当用户登录成功,直接调用 next() 方法放行
    //2 当用户没有登录,应该调用 next('/login') 跳转到登录页面,让用户登录

    //通过登录成功时候保存的token,来作为有没有登录成功的条件
    const token = localStorage.getItem('token')
    if(token) {
      //有,登录成功
next()
    } else{
      //没有,登录失败
      next('/login')
    }
  }
})

export default router

免责声明:文章转载自《路由守卫》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇利用OpenJ9大幅度降低JAVA内存占用Centos7下service配置知识下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Centos7 挂载

1.Mount命令:Mount语法格式:Mount Mount设备文件信息Mount point(目录)注意:装载点(目录)必须有一个装载CD-ROM驱动器:Mount/dev/cdrom/mnt 2.卸载命令:umount语法格式:umountmount point(directory)3.查看磁盘装载状态/查看磁盘使用情况df4。存储设备通电时自动装载#...

HTTP请求报文

不仅报表样式可以传递请求参数,请求url也可以以类似于键值对的方式传递数据...

阿里巴巴开源性能监控神器Arthas初体验

今天跟大家介绍一款阿里巴巴开源的性能分析神器Arthas官方网站:https://alibaba.github.io/arthas/index.htmlArthas能为你做什么事情呢?接下来,我们找个项目实际体验一下Arthas。﹏﹏﹏﹏上述几个命令只是性能测工作中常用的一些操作,Arthas还有很多其他维度的监控数据,大家可以去官网看下用户手册学习更多操作...

iview表格动态数据实现合并功能

需求原型:代码实现:html part:从'../../libs/c导入{MsgType,PublicType}...

beego

Charset=utf8“)56//参数4(可选)设置最大空闲连接7//参数5modelorm.RegisterModelRegisterModelWithPrefix。使用表名前缀orm.RegisterModelWithPrefixbeego自动创建表。1//参数1使用默认数据库ORM接口使用1//查询操作2funread(){3o:=ORM.NewOr...

layui table 打印表格

例如,layui的表单打印方法是将表单的数据重新组合成新页面,但它只能打印当前页面的内容。仅仅说实话是不够的。我整个上午都找到了一些,并说他们自己换了,但他们并不满意。这没用。我只能打印当前页面的内容。我的想法是编写一个函数,传递显示的列和要打印的数据,然后直接打印。不要胡说八道。直接转到代码。...