vue router拦截器的简单使用

Posted fqh123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);//调试代码
  }
})

 

以上是关于vue router拦截器的简单使用的主要内容,如果未能解决你的问题,请参考以下文章

Vue router拦截 如果用户并未登录直接跳转到登录界面(最简单的cookie演示)

vue全家桶的使用<router-view>routerviewvueX嵌套路由子路由动态路由路由拦截路由守卫elementUiSPA

axios请求拦截器响应拦截器vue-router路由导航守卫的使用(案例)

vue router拦截器防止重复点击

Vue3 如何使用 vue-router 以及路由权限拦截

vue中使用router全局守卫实现页面拦截及安全问题的一点感想