您好,登錄后才能下訂單哦!
這篇“vue中怎么監聽url地址欄參數變化”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“vue中怎么監聽url地址欄參數變化”文章吧。
問題:
在開發過程中我們有可能會遇到一個問題,就是在一個vue項目中引入了一個組件,點擊這個組件跳轉的還是當前的頁面,只是傳遞的參數發生了變化,這個時候我們傳遞的參數就不能正常的賦值了,這是因為頁面沒有重新加載,所以我們就要監聽地址欄的參數變化了。
this.$router.push({ path: url,//路由地址 query:{//參數 type: 1 } });
watch: { //監聽路由地址的改變 $route:{ immediate:true, handler(){ if(this.$route.query.type){//需要監聽的參數 this.type = this.$route.query.type } } } }
之前嘗試在vue中監聽路由變化,發現在vue中無法使用window.location來監聽,于是另外找了一種方法。
這個檢測不會去檢測域名,端口,協議的變化,只會檢測端口后面的內容的變化,檢測路由的值和參數的值.
'$route': { handler(val) { console.log(val); }, deep: true // immediate: true },
在vue中去監聽$route就可以了,這里面包含了端口號后面的所有信息。
每一次跳轉路由都會監聽到路由的變化(甚至可以監聽錨的變化和參數的變化),記得添加深度監聽(其實在watch里面,待監聽參數命名這里如果使用字符串—(’$route’)—的話就可以直接進入深度監聽)
PS:如果您只是想要監聽路由 單一部分 的變化的話,建議把監聽對象寫得更加詳細一些,比如…
'$route.path'(val) { // ........ } '$route.query'(val) { // ........ }
雖然還是深度監聽,但是性能會大有提高。
最后測試的部分就交給大家了!
注意:建議把這個監聽方法放在一個所有頁面都會使用的公共組件上面,這樣就可以常駐地監聽而不會因為組件的切換而導致監聽的失效。
以上就是關于“vue中怎么監聽url地址欄參數變化”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。