javascript 正在从URL中删除查询字符串参数

jvlzgdj9  于 2023-02-18  发布在  Java
关注(0)|答案(4)|浏览(113)

来自AngularJS,我认为这在Vue.js 2中也很容易,但在Vue中设计起来似乎很困难。
在AngularJS中,我可以这样做$location.search('my_param', null);,这将有效地将https://mydomain.io/#/?my_param=872136转换为https://mydomain.io/#/
在Vue中,我尝试过this.$router.replace('my_param',null);,但它只会执行https://mydomain.io/#/?my_param=872136-〉https://mydomain.io/#/my_param,留下空的my_param
Vuejs 2中没有从URL中删除查询参数的方法吗?我应该求助于普通的JS来实现这一点吗?

ebdffaop

ebdffaop1#

router.replace()是通过从浏览器历史堆栈中删除当前URL并将其替换为您传递给它的参数路由来进行导航。
实际语法是router.replace(url_location, onComplete, onAbort)
您所做的是router.replace(my_param, null),它从历史堆栈中删除当前URL并将其替换为'my_param',对于onComplete回调,您将传递null
所以你要这样做:

this.$router.replace('/')

有关programatic navigation的更多信息

2ledvvac

2ledvvac2#

如果有多个查询参数,删除其中一个参数的正确方法是:

const query = Object.assign({}, this.$route.query);
delete query.my_param;
this.$router.replace({ query });
vlju58qv

vlju58qv3#

@DaveIdito在上面的评论中给出的答案对我来说已经有好几次价值了,为了引起适当的关注,把它添加为答案。
要仅删除所有查询参数而不再次加载或更改历史记录,请用途:

this.$router.replace({'query': null});
kmbjn2e3

kmbjn2e34#

这对我来说非常有效。它替换了所有的查询参数,只将路由更改为path。
路由器。替换(路由。路径);

相关问题