Vue router beforeEach为什么执行两次

当使用 Vue Router 时,beforeEach函数会在每个路由切换前执行一次,它的返回值会影响路由切换的行为。beforeEach函数的执行次数是由以下因素决定的:

  1. 次数与路由切换次数相等,每个路由切换都会执行一次beforeEach函数。
  2. 次数与异步加载路由组件次数相等,如果使用了异步路由组件,那么每个异步路由组件的加载都会执行一次 beforeEach函数。

因此,出现 beforeEach执行两次的场景,可能是两种原因之一:

1. 路由切换时,一个异步路由组件正在加载,导致 beforeEach函数被执行了两次。
2. 代码中存在多个路由实例或者路由拦截器,导致每个路由拦截器都执行了一遍 beforeEach函数,从而执行了两次。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这是一篇集合了从如何查看 vue-router源码(v3.1.3),到 vue-router源码解析,以及扩展了相...
    尤小小阅读 5,657评论 2 14
  • 回忆: 我们知道,h5的history或者hash帮助我们解决了,变化url跳转页面不发送请求,并且我们能监听到u...
    LoveBugs_King阅读 3,704评论 0 5
  • 1、vue-router路由有几种模式?说说它们的区别? 在vue的路由配置中有mode选项,可以设置为hash和...
    团子哒哒阅读 2,177评论 1 16
  • Vue Router 是Vue.js[http://cn.vuejs.org/]官方的路由管理器。它和 Vue.j...
    SY阅读 654评论 0 0
  • 一、vue-router实现原理 SPA(single page application):单一页面应用程序,只有...
    walycode阅读 1,073评论 1 3