問題描述
當我們使用同一路徑跳轉不同頁面時,路由參數不會刷新,所以組件中接收不到,比如我的路由定義和路由跳轉鏈接如下:
當然我們人為不肯直接這樣寫啦~這里模擬問題寫的demo
采用 watch 監聽
1. 在點擊跳轉的組件中使用 watch 進行檢測動態改變路由參數:
watch: {
// 利用watch方法檢測路由變化:進行重新賦值
$route: function(to, from) {
if (to.path !== from.path) {
this.maintype = to.params.maintype // 獲取參數 這里的 mainTpe 是我的路由參數
}
}
}
在這樣配置完成之后我還出現了警告,如果沒有可以忽略繼續
2. 在頁面不使用 props 來接收路由參數,而采用data進行定義
data() {
return {
mainType: this.$route.params.mainType, // 這里的mainTpe是我的路由參數
};
},
這種場景可以用在我們需要根據路由參數渲染頁面的不同數據,主頁面是一樣的,比如我有許多的分類管理,那么我們就可以這樣抽離成一個主頁面和路由,在組件中根據路由參數來去調用接口進行頁面數據的賦值。
有不對和疑問歡迎指出☞