报错:
看到这样的报错,我再meta那里查了很久,都没有找到原因,于是将关注点转移到router.brforeEach上。
router.beforeEach代码:
修改router.beforeEach的代码,并测试:
代码:
结果:
a打印了两次,452行的from和453行的to的地址分别打印了两次 ,两次显示的地址不同,从图中可以看出,多了个item.path这个中间过渡的地址,那么,这个地址是怎么来的呢?(其中打印的2的影响不大),对此,我首先想到了,先看看跳转路由那个地方是怎么回事。
然后发现跳转路由地方的代码:
这里 router-link的to属性没有加冒号,而我对to属性传的值又是动态的,而里面传的值又是多出来的item.path,先大胆推测一波,这就是执行两次的原因,将to改为:to,测试一下。
结果:
没有执行两次了,问题算是解决了。
可是由此也产生了一个疑问,按理来说,to 属性在没有加 :的时候,里面的值应该是一个字符串,而我这种情况,就是跳转到了一个没有定义的路由上,可是为什么在跳转到一个没有定义的路由上之后,又自动跳转到了item.path作为变量时所指向的那个路由呢?