Vue.js NuxtJS更改查询参数并重新加载页面

Vue.js NuxtJS更改查询参数并重新加载页面,vue.js,vue-router,server-side-rendering,nuxtjs,Vue.js,Vue Router,Server Side Rendering,Nuxtjs,我在我的NuxtJS应用程序中有一个接受查询参数的路由。我试图实现一种逻辑,允许用户更改查询参数并重新加载页面 我试过: //这不起作用,因为我已经在“mypage”中,“push”不会重新加载同一个页面 这个.$router.push(`/mypage?param1=${value1}¶m2=${value2}`) //结果同上 这是.$router.push({path:'/mypage',query:{param1:value1,param2:value2}}) //这可以更改查询

我在我的NuxtJS应用程序中有一个接受查询参数的路由。我试图实现一种逻辑,允许用户更改查询参数并重新加载页面

我试过:

//这不起作用,因为我已经在“mypage”中,“push”不会重新加载同一个页面
这个.$router.push(`/mypage?param1=${value1}¶m2=${value2}`)
//结果同上
这是.$router.push({path:'/mypage',query:{param1:value1,param2:value2}})
//这可以更改查询参数,但在重新加载时,这些参数将恢复为原始参数
此.$router.replace({query:{param1:value1,param2:value2}})
window.location.reload()
//这会重新加载页面,但查询参数也会恢复
这个.$router.go(`/mypage?param1=${value1}¶m2=${value2}`)
有什么建议吗?

这只是一个解决办法: 多亏了这一点:

我通过使用javascript解决了这个问题:

window.history.pushState({},`/mypage?param1=${value1}¶m2=${value2}`)
window.location.reload()

当然,这不是一个最优的解决方案,但在有人提出更合适的解决方案之前,它会完成工作。谢谢。

您应该使用第二种方法更新查询参数

this.$router.push({ path: '/mypage', query: {param1: value1, param2: value2}})
强制重新加载页面实际上是一种不好的做法,相反,您应该为查询设置一个监视程序或计算程序

例如


如果这对您的不起作用,请提供有关您的问题的更多信息。

使用
重新加载
的目的是什么?要在更改查询参数后刷新页面,但它不起作用,但Vue是反应性的,应该在不刷新的情况下进行更改。这不是一个好的练习谢谢你的回答,如果我想用新参数重新加载页面,我会在watcher中添加什么?你可以用这个来重新加载页面。$router.go(0),但是正如我在回答中所说的,你真的不应该这样做,因为NuxtJs是被动的。在99%的情况下,您可以通过其他方式(方法、vuex等)解决问题。
  watch: {
    '$route.query'() {
      // do something
    }
  },