通常咱們在vue工程中進行頁面跳轉,直接用this.$router.push({path:'/xxx ', query: { id: id,name: "yyy"}})vue
可是當跳轉的路徑相同,只有後面攜帶的參數不一樣時,每每會出現跳轉不生效的狀況。緩存
那麼每每咱們會在進入這個頁面的時候調用init()方法,可是不是全部狀況均可以用這種方式作的,咱們能夠經過監聽路由的方式處理。this
watch: { '$route' (to, from) { this.$router.go(0); } }
參考資料:https://blog.csdn.net/wulala_orz/article/details/78928524spa
實際應用實例:.net
背景:一個頁面,可是有兩個路由指向這個頁面,須要這兩個路由切換時頁面數據刷新code
使用watch監聽router變化router
watch: { '$route' (to, from) { if(to.path.indexOf('/materiel-manage/gz')>=0){ this.init(); } if(to.path.indexOf('/materiel-manage/source')>=0){ this.init(); } } }
存在的問題:全部進入這個頁面時,數據有會刷新;blog
但願能作到:當兩個路由指向同一個頁面時,頁面都能緩存,即我在這個路由下操做着頁面,跳轉到另外一個路由所指向的相同的頁面中進行操做,二者不相互干擾。(若是使用keepalive,二者是會被幹擾的)路由
望指教,後續找到方式也會不斷更新string
在路由跳轉,頁面刷新這方面還有不少其餘的問題,後續遇到,持續更新。