再次单击当前路线链接时,如何重新加载 Web 应用程序?

Posted

技术标签:

【中文标题】再次单击当前路线链接时,如何重新加载 Web 应用程序?【英文标题】:How do I reload the web app when current route link is clicked again? 【发布时间】:2020-01-18 14:12:06 【问题描述】:

请看小提琴

https://jsfiddle.net/L3px7okf/

我想在再次单击您当前所在的同一条路线(例如/foo)时重新加载应用程序,因为我需要重置页面状态(是的,实际上,正确的方法是重置状态,但应用程序代码有点棘手,因此我需要一个快速的解决方案)。

但是当我点击/foo 正在路线/bar 时,我不想重新加载应用程序。

问题是VueRouter 在单击同一个链接时什么都不做。不调用全局(如beforeEach)和组件内(如beforeRouterEnter/beforeRouteLeave)钩子。 @onclick.native 事件处理没有帮助,因为在执行处理程序时,路由已经更新。

【问题讨论】:

【参考方案1】:

我找到了这个...https://***.com/a/51170320/10039548

<router-view :key="$route.fullPath"></router-view>

好像他们在这里谈了一点这个问题

【讨论】:

不,据说“使用密钥,对路径的任何更改都会触发使用新数据重新加载组件”。因此,这仍然需要修改 URL。【参考方案2】:
this.$router.go()

点击可以刷新页面..

【讨论】:

/bar->/foo 呢?正如我在这种情况下所描述的那样,我不想重新加载应用程序。【参考方案3】:

尝试使用<a href="your route here"> 我已经使用过它,它工作得很好。

【讨论】:

以上是关于再次单击当前路线链接时,如何重新加载 Web 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

获取当前滚动位置并将其作为带有链接的变量传递?

在不重新加载 web 视图的情况下更改 html 文本颜色

如何重新加载 WPF 网格

再次恢复应用程序时如何不重新加载webview?

在Vue 3中单击路由器链接时如何在不重新加载页面的情况下切换侧边栏

同一路线的角力载荷