【问题标题】:vue-router's router-link with actual refresh?vue-router的router-link实际刷新?
【发布时间】:2019-01-14 00:18:31
【问题描述】:

我希望在单击链接时刷新“SPA”,而不是在您看到最少的组件替换时刷新其默认行为。

听起来我正在扼杀 SPA 的最佳部分,但我觉得没有刷新的链接带来的麻烦多于好处 - 我认为最糟糕的是,如果您单击链接到当前页面,在我看来相当混乱:

<!-- You click, then of course nothing happens when you're at HelloWorld -->
<router-link :to="{name: 'HelloWorld'}">link</router-link>

【问题讨论】:

  • 是的,您正在扼杀 SPA 的目的。像 vue-router 这样的 spa 路由器专为不涉及实际页面刷新的导航而设计。如果您的应用程序在从一个页面导航到另一个页面后无法正常工作,那么您的实现存在需要修复的问题。
  • @JulianPaoloDayag 谢谢,这可能是有道理的,但正如我在问题中所描述的,最大的挫折是当您单击当前页面的链接时没有任何反应 - 行为(至少)我认为链接没有响应是因为链接/网站已损坏。
  • 你能给我们一个示例代码吗?
  • @JulianPaoloDayag 我添加了一个示例。
  • 你也可以提供你的路线吗?

标签: vue.js vue-router


【解决方案1】:

好吧,我不知道普通的&lt;a&gt; 标签会像我的预期那样工作如果使用历史模式,所以我最终这样做了:

<a :href="$router.resolve({name: 'HelloWorld'}).href">link</a>

或者只是:

<a href="/">link</a>

【讨论】:

  • 谢谢。我有带有 :to 对象的路由器链接,但我想在这个特定情况下重新加载页面,所以我做了$router.resolve(to).href
【解决方案2】:

感谢 akai,当我想使用相同的组件时,我会使用您的帮助。我有一个类别列表,当我点击某个类别页面时需要重新加载。

<a :href="$router.resolve({name:'category', params: {id: category.id}}).href">
    {{category.name}}
    <span>({{category.posts.length}})</span>
</a>

【讨论】:

  • 您不能使用这种方法添加参数。这对你有用吗?
猜你喜欢
  • 2018-11-08
  • 2021-07-25
  • 2020-04-05
  • 2020-05-19
  • 2018-05-15
  • 2022-11-26
  • 2021-10-16
  • 2019-11-10
  • 1970-01-01
相关资源
最近更新 更多