Vue?Router修改query參數(shù)url參數(shù)沒有變化問題及解決
Router修改query參數(shù)url參數(shù)沒有變化問題
正常情況下
this.$router.push({ query:{} }) this.$router.replace({ query:{} })
就可以修改了
但是當(dāng)已有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的話 會導(dǎo)致返回歷史有記錄
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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue自定義指令實現(xiàn)checkbox全選功能的方法
下面小編就為大家分享一篇Vue自定義指令實現(xiàn)checkbox全選功能的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02Vue.js與 ASP.NET Core 服務(wù)端渲染功能整合
本文通過案例給大家詳細分析了ASP.NET Core 與 Vue.js 服務(wù)端渲染,需要的朋友可以參考下2017-11-11Vue3 openlayers加載瓦片地圖并手動標(biāo)記坐標(biāo)點功能
這篇文章主要介紹了 Vue3 openlayers加載瓦片地圖并手動標(biāo)記坐標(biāo)點功能,我們這里用vue/cli創(chuàng)建,我用的node版本是18.12.1,本文結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下2024-04-04vue-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標(biāo)簽不被解析的問題
這篇文章主要給大家介紹了如何利用v-html解決Vue.js渲染過程中html標(biāo)簽不能被解析,html標(biāo)簽顯示為字符串的問題,文中通過圖文介紹的很詳細,有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-12-12