vue中如何監(jiān)聽url地址欄參數(shù)變化
vue監(jiān)聽url地址欄參數(shù)變化
問題:
在開發(fā)過程中我們有可能會(huì)遇到一個(gè)問題,就是在一個(gè)vue項(xiàng)目中引入了一個(gè)組件,點(diǎn)擊這個(gè)組件跳轉(zhuǎn)的還是當(dāng)前的頁面,只是傳遞的參數(shù)發(fā)生了變化,這個(gè)時(shí)候我們傳遞的參數(shù)就不能正常的賦值了,這是因?yàn)轫撁鏇]有重新加載,所以我們就要監(jiān)聽地址欄的參數(shù)變化了。
1、傳遞參數(shù)
?? ?this.$router.push({ ?? ? ? ?path: url,//路由地址 ?? ? ? ?query:{//參數(shù) ?? ? ? ? ? ?type: 1 ?? ? ? ?} ?? ?});
2、監(jiān)聽參數(shù)變化
?? ?watch: { ?? ? ? ?//監(jiān)聽路由地址的改變 ?? ? ? ?$route:{ ?? ? ? ? ? ?immediate:true, ?? ? ? ? ? ?handler(){ ?? ? ? ? ? ? ? ?if(this.$route.query.type){//需要監(jiān)聽的參數(shù) ?? ? ? ? ? ? ? ? ? ?this.type = this.$route.query.type ?? ? ? ? ? ? ? ?} ?? ? ? ? ? ?} ?? ? ? ?} ?? ?}
vue檢測url的變化-Kaiqisan
之前嘗試在vue中監(jiān)聽路由變化,發(fā)現(xiàn)在vue中無法使用window.location來監(jiān)聽,于是另外找了一種方法。
這個(gè)檢測不會(huì)去檢測域名,端口,協(xié)議的變化,只會(huì)檢測端口后面的內(nèi)容的變化,檢測路由的值和參數(shù)的值.
'$route': { ? ? handler(val) { ?? ??? ?console.log(val); ?? ?}, ?? ?deep: true ?? ?// immediate: true },
在vue中去監(jiān)聽$route就可以了,這里面包含了端口號后面的所有信息。
每一次跳轉(zhuǎn)路由都會(huì)監(jiān)聽到路由的變化(甚至可以監(jiān)聽錨的變化和參數(shù)的變化),記得添加深度監(jiān)聽(其實(shí)在watch里面,待監(jiān)聽參數(shù)命名這里如果使用字符串—(’$route’)—的話就可以直接進(jìn)入深度監(jiān)聽)
PS:如果您只是想要監(jiān)聽路由 單一部分 的變化的話,建議把監(jiān)聽對象寫得更加詳細(xì)一些,比如…
'$route.path'(val) { ? ? // ........ } '$route.query'(val) { ? ? // ........ }
雖然還是深度監(jiān)聽,但是性能會(huì)大有提高。
最后測試的部分就交給大家了!
注意:建議把這個(gè)監(jiān)聽方法放在一個(gè)所有頁面都會(huì)使用的公共組件上面,這樣就可以常駐地監(jiān)聽而不會(huì)因?yàn)榻M件的切換而導(dǎo)致監(jiān)聽的失效。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue3+Three.js實(shí)現(xiàn)為模型添加點(diǎn)擊事件
本文主要介紹了如何在Vue3和Three.js環(huán)境中為模型添加點(diǎn)擊事件監(jiān)聽,具體方法是利用Three.js的Vector2和Raycaster,首先,創(chuàng)建一個(gè)Vector2對象來獲取鼠標(biāo)位置;然后,創(chuàng)建一個(gè)Raycaster對象來投射光線2024-10-10解決iview多表頭動(dòng)態(tài)更改列元素發(fā)生的錯(cuò)誤的方法
這篇文章主要介紹了解決iview多表頭動(dòng)態(tài)更改列元素發(fā)生的錯(cuò)誤的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11vue 實(shí)現(xiàn)Web端的定位功能 獲取經(jīng)緯度
這篇文章主要介紹了vue 實(shí)現(xiàn)Web端的定位功能獲取經(jīng)緯度,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08Vue3超詳細(xì)的ref()用法教程(看這一篇就夠了!)
這篇文章主要給大家介紹了關(guān)于Vue3超詳細(xì)的ref()用法的相關(guān)資料,在Vue3中ref函數(shù)不僅可以用于在組件中獲取DOM元素或子組件的引用,還可以直接訪問組件元素本身,需要的朋友可以參考下2023-07-07ElementUI組件Dialog彈窗再次打開表單仍顯示上次數(shù)據(jù)的問題
這篇文章主要介紹了ElementUI組件Dialog彈窗再次打開表單仍顯示上次數(shù)據(jù)的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04Vue瀏覽器鏈接與接口參數(shù)實(shí)現(xiàn)加密過程詳解
這篇文章主要介紹了Vue瀏覽器鏈接與接口參數(shù)實(shí)現(xiàn)加密過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-12-12