VUE——路由验证和相应拦截的使用

本文介绍了在Vue项目中如何实现路由验证和响应拦截。内容包括在vuex中存放登录状态,利用`router.beforeEach`进行路由验证,详细展示了不同情况下的路由跳转逻辑,并讨论了路由验证的位置选择。此外,还讲解了如何在全局设置路由验证以及在main.js和/network/request.js中设置响应拦截来处理登录状态。
摘要由CSDN通过智能技术生成

前言

在web项目中,经常需要根据是否登录进行路由的验证和相应的拦截。

存放登录信息

首先,在vuex里的store.js里边写一个存放登录状态,代码如下:

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
   
  state: {
   
    user: false
  },
  mutations: {
   
    // 登录
    login (state, user) {
   
      state.user = user
    },
    // 退出
    logout (state, user) {
   
      state.user = false
    }
  }
})

路由验证

利用 router.beforeEach( (to, from, next) => { }

钩子函数beforeEach三个参数的意义:
①to:即将要进入的目标的路由对象.
②from:当前导航即将要离开的路由对象.
③next:调用该方法后, 才能进入下一个钩子.
next(’/路径’) 指定某个路径

路由验证例子一:下一跳的路由为 ‘/watchHouse’ 或者 ‘/AgentMsg’ ,如果没有登录的话,通过代码 next ({path: ‘/login’}) 跳转到登录的界面。

代码如下:

if (!store.state.user && (to.path === '/watchHouse' || to.path === '/AgentMsg')) {
   
  next({
    path: '/login' })
}

路由验证例子二:在路由 ‘/my’ 下,要跳往 ‘/ToolCompute’ ,如果没有登录的话,跳转到登录页面。

代码如下:

if (!store.state.user && (from.path === '/my') && (to.path === '/ToolCompute')) {
   
  next({
    path: '/login' })
}

全部代码:
对某些路由进行路由验证
目的:如果下一路由为 ‘/login’ 则 next();如果未登录且下一路由为 ‘/watchHouse’ 或 ‘/AgentMsg’,则 next({ p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值