再次单击当前路线链接时,如何重新加载 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 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章