router.beforeEach 执行了2次

页面上任何一个路由跳转都会输出两次,这是什么引起的

router.beforeEach((to, from, next) => {
    console.log(to,from);
  next();
});

找的太痛苦,从头到尾查一遍,到处注释排查差点准备重新写了,最后发现是cdnrouter的版本号问题,换了个版本就好了
-- -- -- -- -- -- -- -- -- -- -- -- -- --

问题补充:目前的问题是所有路由页刷新跳转都会执行两次输出,我贴出来的全局路由拦截实际业务是根据路由的name值塞到百度统计里,axios的拦截器也没有写跳转方法,未登录时会有一个提示,如果我不使用懒加载的方式导入路由那beforeEach是只输出一次的

-- -- -- -- -- -- -- -- -- -- -- -- -- --
找到原因了如果直接引入只会执行一次
import login from '@/login';
如果懒加载引入
const login = () => import('@/login');
就会执行两次,应该如何解决

阅读 11.5k
3 个回答

换了个版本号就可以用了,以后有时间一定要把源码看一看,现在只是在应用,出了问题也不知道怎么排查问题,搜又搜不到,哎

新手上路,请多包涵

看看是否发生了重定向

我觉得应该是重定向吧。一般项目第一次执行在'login'页,判断存在token之后,又从login跳转到其他页面,所以就会执行两次。
你可以看看你的axios拦截器之类的有没有设置重定向

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题