vue-router 的 router-link 有实际刷新吗?

问题描述 投票:0回答:3

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

听起来我正在扼杀 SPA 最好的部分,但我觉得没有刷新的链接带来的麻烦多于好处 - 我认为最糟糕的是,如果您单击当前的链接,页面不会明显响应页面,我认为这相当令人困惑:

<!-- You click, then of course nothing happens when you're at HelloWorld -->
<router-link :to="{name: 'HelloWorld'}">link</router-link>
vue.js vue-router
3个回答
28
投票

好吧,我不知道普通的

<a>
标签可以按照我的预期工作如果使用历史模式,所以我最终这样做了:

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

或者也许只是:

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

3
投票

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

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

0
投票
<router-link :to="{name: 'HelloWorldPage'} @click="reloadPageWhenRouteTheSame('HelloWorldPage')">link</router-link>

<script setup>
import router from '@/router'

const reloadPageWhenRouteTheSame = (routeName) => {
  if (router.currentRoute.value.name === routeName) {
    router.go()
  }
}
</script>
© www.soinside.com 2019 - 2024. All rights reserved.