vue 改变 query 参数的一个奇怪问题

当前路由例如 /search,我想跳转到 /search?p=1,首页想到是先读取this.$route.query,然后修改p实现跳转,
但我项目里下面push方法并没有跳转到我想到的url

let newQuery = this.$route.query //读取query参数
newQuery.p   = val //修改页码

let routeParam={
    query: newQuery
}

this.$router.push(routeParam)

以上问题我想可能是我对vue-router不了解,所以不知道哪里不对,但奇怪的地方是下面代码却能成功跳转到我想要的url,我打印出来 routeParam,看有任何区别

let newQuery = {}
newQuery.p   = val
let routeParam={
    query: newQuery
}
this.$router.push(routeParam)

事实上我想改变的不只是 p参数,所以每次都读this.$route.query,然后修改
但出现以上我不理解问题,我是不是漏掉什么细节?

阅读 11.8k
3 个回答

看代码的话应该是 值与址的问题.

            let newQuery = JSON.parse(JSON.stringify(this.$route.query)); //读取query参数
            newQuery.p = val
            let routeParam={
                query: newQuery
            }
            this.$router.push(routeParam)
this.$router.push({path:'/index/detail',query:{id:xx,num:xxx}});
query是携带参数
你path没有 怎么会跳转
你要跳转的路由在哪里?
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题