vue项目常见之五:路由拦截器(permission),导航守卫

// 处理路由拦截器 导航守卫
import router from ‘../router‘
import progresss from ‘nprogress‘
import ‘nprogress/nprogress.css‘
// 全局前置守卫  当 路由发生变化时 这个方法里的回调函数就会执行
router.beforeEach(function (to, from, next) {
  progresss.start() // 开启进度条
  // 权限拦截 认为有token 让过去 没token不让过
  if (to.path.startsWith(‘/home‘)) {
    //   确定要去检查的范围
    let token = window.localStorage.getItem(‘user-token‘)
    if (token) {
      next() // 放过
    } else {
      next(‘/login‘) // 跳转到登录页
    }
  } else {
    next() // 直接放过
  }
})
router.afterEach(() => {
  // setTimeout(() => progresss.done(), 1000)
  progresss.done()
  // 关闭进度条
})

原文地址:https://www.cnblogs.com/wtsx-2019/p/12546153.html

时间: 2024-10-02 13:07:04

vue项目常见之五:路由拦截器(permission),导航守卫的相关文章

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

Spring Boot项目中如何定制拦截器

本文首发于个人网站:Spring Boot项目中如何定制拦截器 Servlet 过滤器属于Servlet API,和Spring关系不大.除了使用过滤器包装web请求,Spring MVC还提供HandlerInterceptor(拦截器)工具.根据文档,HandlerInterceptor的功能跟过滤器类似,但拦截器提供更精细的控制能力:在request被响应之前.request被响应之后.视图渲染之前以及request全部结束之后.我们不能通过拦截器修改request内容,但是可以通过抛出异

路由拦截器// 全局守卫

1.为什么需要路由拦截器 为了防止用户在知道组件名称的情况下,没有登录而直接进入相应的页面下,所以要为路由设置一个拦截器,来判断用户是否登录过. 2.怎样设置路由拦截器: 分析:当我们第一次登录的时候,向服务器发送请求,服务器会给我们一个token标记符(这个token时前后台约定好的一个值),客户端拿到这个token后将它保存到本地localstorage或vueX中,当我们再次访问时,将这个token在携带给服务器.服务器会通过算法校验这个token的合法性(这个token会有一个有效期),

VUE—路由(四)导航守卫&动态路由

1.在个人中心中做个表单,当表单中有内容时,跳转到其他页面做个提醒 除了beforeRouteLeave在组件中还有其他路由函数,统称导航守卫 2.当从个人中心跳到学术讨论的时候,学术讨论页面也知道跳转进来了,这个函数叫beforeRouteEnter 原文地址:https://www.cnblogs.com/tianya-guoke/p/11509461.html

如何在Vue项目中给路由跳转加上进度条

1.前言 在平常浏览网页时,我们会注意到在有的网站中,当点击页面中的链接进行路由跳转时,页面顶部会有一个进度条,用来标示页面跳转的进度(如下图所示).虽然实际用处不大,但是对用户来说,有个进度条会大大减轻用户的等待压力,提升用户体验.本篇文章就来教你如何在Vue项目中实现这样的进度条. 2.安装Nprogress 虽然我们也可以自己手动实现这样的功能,但是,nprogress.js已经帮我们把进度条的样式呀,功能呀都已经封装的很好了,既然有现成的轮子,我们就直接使用轮子就好啦! npm inst

Vue 项目中对路由文件进行拆分(解构的方法)

项目需求场景: 在开发项目过程中,在项目过于庞大,路由信息非常多的情况下,如果将路由配置信息都放在一个文件里面,那么这个JS是不方便维护的, 那么,这个时候需要我们把这个庞大的路由文件,根据项目功能分类,拆分为几个不同的路由文件. 实现步骤: 1.不管你拆分为几个,最后都是要整合到一个js文件里面的, 2.比如你建立了两个文件夹,分别为router,router2,里面都有一个index.js,其中router为主文件夹,在里面的index.js中引入外部配置的路由信息 3.在router2中的

「Vue」起步 - vue-router路由与页面间导航

vue-router 我们知道路由定义了一系列访问的地址规则,路由引擎根据这些规则匹配找到对应的处理页面,然后将请求转发给页进行处理.可以说所有的后端开发都是这样做的,而前端路由是不存在"请求"一说的. 前端路由是找到地址匹配的一个组件或者对象将其渲染出来.改变浏览器地址不向服务器发送请求有两种方法, 一是在地址中加入#以欺骗浏览器,地址的改变是由于正在进行页内导航:二是使用HTML5的window.history功能,使用URL的hash来模拟一个完整的URL. vue-router

VUE—路由(五)导航守卫

一.路由独享守卫 假如要守护home路径,就在router.js中home路径中设置 二.全局守卫(守卫所有路径) 加在路由整体上—>router中,router在mian.js中使用,所以先设置main.js 2.全局守卫:beforeResolve (当路由内的东西都被解析完毕时执行(一层一层都加载完的时候)) 形式与上面的router.beforeEach一样 3.router.afterEach( ) =>{   }  什么都ok时执行,没有实质意义,里面也没有参数 路由的解析流程:

vue axios 拦截器

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