您现在的位置是:网站首页> 编程资料编程资料
Vue Router修改query参数url参数没有变化问题及解决_vue.js_
2023-05-24
361人已围观
简介 Vue Router修改query参数url参数没有变化问题及解决_vue.js_
Router修改query参数url参数没有变化问题
正常情况下
this.$router.push({ query:{} }) this.$router.replace({ query:{} })就可以修改了
但是当已有query对象里面修改其中一个值,就会发现虽然this.$route.query发生改变但是浏览器的url上的参数并没有发生变化, 尝试将已有的参数进行深拷贝突然发现就可以了
let newQuery= JSON.parse(JSON.stringify(this.$route.query)); newQuery.index = 2; this.$router.replace({ query: newQuery })vueRouter不切换url只修改query报错
使用push的话 会导致返回历史有记录
this.$router.push({ query: { id: this.processId } })所以需要使用
this.$router.replace({ query: { id: this.processId } })虽然不影响使用,但是会报如下错误
![]()
解决方案
在router.js加上这段
import VueRouter from 'vue-router' const originalReplace = VueRouter.prototype.replace VueRouter.prototype.replace = function replace (location) { return originalReplace.call(this, location).catch(err => err) } // push的同理 const originalPush = VueRouter.prototype.push VueRouter.prototype.push = function push (location) { return originalPush.call(this, location).catch(err => err) }注 适用于3.0.0版本的vue-router, 3.4.x可能会报错.catch获取不到
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
您可能感兴趣的文章:
相关内容
- vue中如何防止用户频繁点击按钮详解_vue.js_
- vue中的路由传值与重调本路由改变参数_vue.js_
- 前端算法题解leetcode36-有效的数独示例_JavaScript_
- 关于TypeScript的踩坑记录_vue.js_
- vue3 组件与API直接使用的方法详解(无需import)_vue.js_
- 一文搞懂JavaScript中的this绑定规则_javascript技巧_
- JS消息弹框alert、confirm、prompt的实现代码_javascript技巧_
- JS中的提升机制变量提升函数提升实例详解_javascript技巧_
- Vue具名插槽+作用域插槽的混合使用方法_vue.js_
- vue3中的setup使用和原理解析_vue.js_
