Vue?Router修改query參數(shù)url參數(shù)沒有變化問題及解決
Router修改query參數(shù)url參數(shù)沒有變化問題
正常情況下
this.$router.push({
query:{}
})
this.$router.replace({
query:{}
})就可以修改了
但是當已有query對象里面修改其中一個值,就會發(fā)現(xiàn)雖然this.$route.query發(fā)生改變但是瀏覽器的url上的參數(shù)并沒有發(fā)生變化, 嘗試將已有的參數(shù)進行深拷貝突然發(fā)現(xiàn)就可以了
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獲取不到
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Vue自定義指令實現(xiàn)checkbox全選功能的方法
下面小編就為大家分享一篇Vue自定義指令實現(xiàn)checkbox全選功能的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02
Vue.js與 ASP.NET Core 服務端渲染功能整合
本文通過案例給大家詳細分析了ASP.NET Core 與 Vue.js 服務端渲染,需要的朋友可以參考下2017-11-11
Vue3 openlayers加載瓦片地圖并手動標記坐標點功能
這篇文章主要介紹了 Vue3 openlayers加載瓦片地圖并手動標記坐標點功能,我們這里用vue/cli創(chuàng)建,我用的node版本是18.12.1,本文結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下2024-04-04
vue-element-admin中node-sass換成dart-sass,安裝依賴報code?128多種問題的解決
這篇文章主要介紹了vue-element-admin中node-sass換成dart-sass,安裝依賴報code?128多種問題的解決方法,本文給大家分享問題原因分析及解決方法,需要的朋友可以參考下2023-02-02
用v-html解決Vue.js渲染中html標簽不被解析的問題
這篇文章主要給大家介紹了如何利用v-html解決Vue.js渲染過程中html標簽不能被解析,html標簽顯示為字符串的問題,文中通過圖文介紹的很詳細,有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-12-12

