vue.js 当用户单击指向当前路径的RouterLink时,如何运行函数?

llmtgqce  于 2023-05-01  发布在  Vue.js
关注(0)|答案(1)|浏览(118)

是否有方法检测是否发生了导航或导航尝试?最明显的方法是这样做:

const route = useRoute()

watch(route, () => {
  // some code
})

但是这样,如果用户按下指向已经打开的页面的RouterLink,什么也不会发生。
我正在制作一个下拉菜单,它是RouterView的兄弟,如果用户尝试导航,即使他导航到他已经在的位置,它应该关闭。
另一种方法是在每个可见的RouterLink上放置一个@click侦听器,但这似乎不是最佳方法。
navigation guards似乎也没有被触发。

ctehm74n

ctehm74n1#

原来router.afterEach确实会在冗余导航上被触发。这解决了我的问题。

相关问题