vue router拦截器的简单使用

之前,为了实现router跳转的每个页面的url上都带上addressCode,然后用了一下router拦截器,很好用,当然也可以专门封装一个方法来实现(跳转的页面上带有addressCode),不过还是感觉router拦截器比较省事。

router拦截器就是在路由跳转前后,做一些事情,相当于一个钩子函数。

下面说一下使用方法:

1、在main.js里  引入router

import router from "./router/router";

2、要在 vue实例前写入

//注册一个全局前置守卫,确保要调用 next 方法,否则钩子就不会被 resolved
router.beforeEach((to, from, next) => {
  //路由切换时,如果没有就添加,有就跳过执行,添加固定参数
  if (!to.query.addressCode) {
      //准备一个跳转的query对象
      let query = to.query
      query.addressCode = tool.getAddressCode();//是一个封装好的获取addressCode的方法
      alert.eduToast(‘没‘+query.addressCode,6000);//调试代码
      next({
        path: to.path,
        query: query
      })
  } else {
      if (to.path !== window.location.pathname) {
        // 此处不可使用location.replace
          window.location.assign(to.fullPath)
        } else {
          next()
        }
      alert.eduToast(‘有‘,6000);//调试代码
  }
})

原文地址:https://www.cnblogs.com/fqh123/p/10360894.html

时间: 2024-11-10 23:30:07

vue router拦截器的简单使用的相关文章

vue axios 拦截器

前言 项目中需要验证登录用户身份是否过期,是否有权限进行操作,所以需要根据后台返回不同的状态码进行判断. 第一次使用拦截器,文章中如有不对的地方还请各位大佬帮忙指正谢谢. 正文 axios的拦截器分为请求拦截器和响应拦截器两种.我一般把拦截器写在main.js里. mian.js//axios请求 import Axios from "axios"; Vue.prototype.$axios = Axios; 请求拦截器 axios.interceptors.request.use(

vue 路由拦截器和请求拦截器

vue 拦截器 路由拦截器 已路由为导向 router.beforeEach((to,from,next)=>{ if(to.path=='/login' || localStorage.getItem('token')){ next(); }else{ alert('请重新登录'); next('/login'); } }) 请求拦截器 当发送请求时才会触发此功能 axios.interceptors.request.use(function (config) { let token = wi

Struts2中拦截器的简单实现

Struts2的拦截器和Servlet过滤器类似.在执行Action的execute方法之前,Struts2会首先执行struts.xml中引用 的拦截器,在执行完所有引用的拦截器的intercept方法后,会执行Action的execute方法.在Struts2的拦截器体系中, Struts2的内建拦截器完成了该框架的大部分操作,所以实际的开发过程中通常都是使用系统的拦截器而已.当然我们也可以开发自己的拦截器,类似于过滤器的开发. 原理: Struts2拦截器的实现原理相对简单,当请求Stru

struts2的拦截器的简单使用

login.jsp页面body中 <s:form action="user_login.action" method="post"> <s:textfield name="username" label="用户名"/> <s:password name="password" label="密码"/> <s:submit value="登

SpringMVC中拦截器的简单使用

SpringMVC的处理器拦截器类似于过滤器Filter,用于对处理器进行预处理和后处理. 例如做登录验证,日志,性能检测等. 一.编写拦截器,使其实现HandlerInterceptor接口 import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerInterceptor; i

Idea基于springBoot的拦截器的简单实现

一.创建SpringBoot项目二.配置文件:1.启动文件InterceptortestApplication.java package com.jane.interceptortest; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.

一次router拦截器的应用

实现 退出登陆  无法回退到其它页面 当有登陆状态时  可以拿其它页面的地址直接访问 若没有登陆状态   拿其它页面的地址直接访问 会报错 router.beforeEach((to, from, next) => { if(to.name=='login'){//若是登陆页面 if(localStorage.getItem("loginStatus")&&localStorage.getItem("loginStatus")=="l

Vue2学习小记-给Vue2路由导航钩子和axios拦截器做个封装

1.写在前面 最近在学习Vue2,遇到有些页面请求数据需要用户登录权限.服务器响应不符预期的问题,但是总不能每个页面都做单独处理吧,于是想到axios提供了拦截器这个好东西,再于是就出现了本文. 2.具体需求 用户鉴权与重定向:使用Vue提供的路由导航钩子 请求数据序列化:使用axios提供的请求拦截器 接口报错信息处理:使用axios提供的响应拦截器 3.简单实现 3.1 路由导航钩子层面鉴权与重定向的封装 路由导航钩子所有配置均在router/index.js,这里是部分代码 import

7.添加基于Spring的WebService拦截器

客户端拦截器: public class AccountInterceptor extends AbstractPhaseInterceptor<SoapMessage>{ private String name; private String password; public AccountInterceptor(String name,String password) { //Phase值决定了拦截器什么时候拦截到消息 //PRE_PROTOCOL准备请求时拦截 super(Phase.P