VueJS:根据过滤器动态更改 URL

VueJS : Dynamically change the URL depending on filters

我有一个项目,前端部分使用 VueJS (2.x)。 我制作了一个组件来进行一些过滤:

而且我希望能够根据过滤器更改 URL,这样我就可以共享 URL 并且其他用户会进行相同的搜索。在我的截图阶段,URL 应该看起来像:my/long/url?username=test&email=@test。但是不知道怎么实现。

目前,当我 add/remove 一个过滤器时,我创建了一个新的 URLSearchParams 对象,我提交给 vuex 存储并使用 watch 语句再次查询我的后端更新过滤器。

问题是我的 URL 没有改变,当然,因为我没有经过 this.$router.push(...) 或其他任何东西。

可能是我一开始写错了

实现这个目标的好方法是什么?知道使用新查询部分路由到同一视图确实会触发错误 DuplicateNavigation...

在此先感谢您的帮助:)

我通过使用 history.pushState 实现了与此类似的东西 这基本上允许您修改 URL 即使您没有使用 $router.push

您可以关注URL了解更多详情 https://developer.mozilla.org/en-US/docs/Web/API/History/pushState