首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从vue路由器删除查询?

如何从vue路由器删除查询?
EN

Stack Overflow用户
提问于 2020-01-21 11:42:57
回答 3查看 5.8K关注 0票数 2

所有删除查询字符串的尝试都失败。

代码语言:javascript
运行
复制
            // Initial state
            this.$router.replace({
                name: 'routeName',
                query: {
                    param: 123
                }
            });

            // Errors
            this.$router.replace({ query: {}});
            this.$router.replace({ query: undefined });
            this.$router.replace({ query: null });

如何删除查询而没有任何错误?

Vue-路由器v3.1.5

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-01-21 12:13:01

出于某种原因,router.replace() & router.push()需要一个非空对象作为查询。因此,rest所要做的就是从值中清除初始查询对象,例如:

代码语言:javascript
运行
复制
let query = {
  param: [1, 2, 3]
};

// Initial state
this.$router.push({
  name: 'yourRouteName',
  query: query
});

// clean your initial query object
query.param = [];

// Now replace it
this.$router.replace({
  query: query
});
票数 2
EN

Stack Overflow用户

发布于 2021-10-06 04:09:26

Vue 3

这对我起了作用:

代码语言:javascript
运行
复制
import { useRoute, useRouter } from 'vue-router'

// put this inside your setup() function:

const route = useRoute()
const router = useRouter()

if (route.query.username = 'test') {
  // do stuff...
  
  // clear the query
  router.replace({ query: {} })      
}
票数 1
EN

Stack Overflow用户

发布于 2020-01-28 04:04:13

试试下面的代码:

代码语言:javascript
运行
复制
let query = Object.assign({}, this.$route.query);
delete query.param;
this.$router.replace({ query });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59840396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档