vue3.2路由守卫

含义:路由跳转的一些验证,比如登陆鉴权(没有登陆,不能进入个人中心等)

参数:

1.to:要进入的目标路由(去哪儿)

2.from:要离开的路由(从哪儿来)

3.next:是否进行下一步(要不要继续)

next用法:

1.写next()===next(true)继续执行,

2.不写next()===next(false)终止执行,

3.next(path)跳转,eg: next('/login')

步骤:

1、@/router/permission.js---------建立路由守卫的文件

// 使用路由(路由守卫)
import router from './index'
// 判断是否登录,需要拿到token,所以引入vuex
import store from '@/store'

// 定义白名单,不需要token(登录)也可以进入的页面
const whiteList = ['/login']
// 路由守卫
router.beforeEach((to, from, next) => {
  // 有token,
  if (store.getters.token) {
    // 有token还要去登录页,没有必要,让他跳转到首页
    if (to.path === '/login') {
      next('/')
    } else {
      // 有token可以去其他的页面
      next()
    }
  } else {
    // 没有token
    // 如果在白名单,继续操作
    if (whiteList.includes(to.path)) {
      next()
    } else {
      // 没有在白名单,则跳转到登陆页面
      next('/login')
    }
  }
})

2.@/store/getters.js----------方便拿取token

export default {
  token: (state) => state.app.token
}

3.@/store/index.js-------------引入getters

import getters from './getters'
export default createStore({
  getters
})

4.main.js引入

import '@/router/permission'

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值