什么是beforeEach?
beforeEach 是一个vue-router的路由导航钩子,一般我用它做路由守卫。
什么是路由守卫?
路由跳转前做一些验证,比如登录验证,是网站中的普遍需求。对此,vue-route 提供的beforeRouteUpdate可以方便地实现导航守卫(navigation-guards)。导航守卫(navigation-guards)这个名字,听起来怪怪的,但既然官方文档是这样翻译的,就姑且这么叫吧。**
文档地址:https://router.vuejs.org/zh/guide/advanced/navigation-guards.html
举个例子,当我们没有登录的时候,跳转到登录页面。如果登录了,则正常跳转。
下面我们来看下死循环代码。
export const router = new Router(RouterConfig); router.beforeEach((to, from, next) => { let token = sessionStorage.getItem('token'); if (token) { next(); } else { next({path: '/p404'}) } });
当 token 不存在于 session 中,跳转到 /p404,此时路由改变,再次进行判断,则又跳转到 /404,由此造成了死循环。在代码中进行一次判断,如果跳到 p404了,就让它安心的进路由吧。修改后代码如下。
export const router = new Router(RouterConfig); router.beforeEach((to, from, next) => { let token = sessionStorage.getItem('token'); if (token) { next(); } else { if (to.path == '/p404') { next(); } else { next({path: '/p404'}) } } });
到此这篇关于详解vue beforeEach 死循环问题解决方法的文章就介绍到这了,更多相关vue beforeEach 死循环 内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!
本文向大家介绍MySQL死锁问题分析及解决方法实例详解,包括了MySQL死锁问题分析及解决方法实例详解的使用技巧和注意事项,需要的朋友参考一下 MySQL死锁问题是很多程序员在项目开发中常遇到的问题,现就MySQL死锁及解决方法详解如下: 1、MySQL常用存储引擎的锁机制 MyISAM和MEMORY采用表级锁(table-level locking) BDB采用页面锁(page-level lo
本文向大家介绍详解在springmvc中解决FastJson循环引用的问题,包括了详解在springmvc中解决FastJson循环引用的问题的使用技巧和注意事项,需要的朋友参考一下 我们先来看一个例子: 输出: 可以看到,这个json如果发到前端是无法使用的,幸好FastJson提供了解决办法,我们来看下,解决办法为禁用循环引用检测,代码如下: 输出如下: 问题是如果我们在spring mvc中
本文向大家介绍详解Struts2中json 相互引用死循环解决办法,包括了详解Struts2中json 相互引用死循环解决办法的使用技巧和注意事项,需要的朋友参考一下 方法1 :利用Struts 2的支持的可配置结果,可以达到过滤器的效果。Action的处理结果配置支持正则表达式。 但是如果返回的对象是一个数组格式的Json数据。比如peson Bean中有对象persion1…person9,而
本文向大家介绍详解Spring Bean的循环依赖解决方案,包括了详解Spring Bean的循环依赖解决方案的使用技巧和注意事项,需要的朋友参考一下 如果使用构造函数注入,则可能会创建一个无法解析的循环依赖场景。 什么是循环依赖 循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。如下图: 注意,这里不是函数的循环调用,
本文向大家介绍Java 解决死锁的方法实例详解,包括了Java 解决死锁的方法实例详解的使用技巧和注意事项,需要的朋友参考一下 死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 java 死锁产生的四个必要条件: 1>互斥使用,即当资源被一个线程使用(占有)时,别的线程不能使用 2>不可抢占,资源请求者不能强制
本文向大家介绍详解vue-cli开发环境跨域问题解决方案,包括了详解vue-cli开发环境跨域问题解决方案的使用技巧和注意事项,需要的朋友参考一下 前后端分离开发中必要会遇到的问题—跨域。在使用vue开发的时候,开始为了解决跨域问题。采用的是CORS(Cross-origin resource sharing)。后台在响应头中添加Access-Control-Allow-Origin。这样就可以跨