問題:為什么要響應參數變化?
- 切換路由,路由參數發生了變化,但是頁面數據並未及時更新,需要強制刷新后才會變化。
- 路由后面參數不同渲染相同的組件時(組件復用比銷毀重新創建效率要高),在切換路由后,當前組件下的生命周期函數不會再被調用。
解決方案:
- 使用 watch 監聽
watch: {
$route(to, from){ if(to != from) { console.log("監聽到路由變化,做出相應的處理");
this.getData(to.meta.id) } } }
- 向 router-view 組件中添加 key
<router-view :key="$route.fullPath"></router-view>
$route.fullPath 是完成后解析的URL,包含其查詢參數信息和hash完整路徑