Vue路由器组件内防护不会触发router.push()被调用

时间:2020-05-14 14:04:57

标签: vue.js vue-router

单击beforeRouteLeave时会触发

组件内防护<router-link to="/">。但是,当我以编程方式调用router.push({ path: "/" })时并不会触发该事件。

这有什么问题吗?

修改

我只是尝试制作一个sandbox,发现它只是在使用动态参数导航到同一路径时才会发生。

例如,从/item/1导航到/item/2会导致此问题。

1 个答案:

答案 0 :(得分:2)

我认为这是一种意想不到的行为,如果您提供更多的上下文,它会有所帮助。

编辑

如果您只是传递其他参数,实际上并不会离开路线,这就是为什么beforeRouteLeave不会被触发的原因。

相反,您可能要使用beforeRouteUpdate

有关组件内防护罩的详细信息,请参见docs