在我們用Vue做項目的時候,有時候需要在同一個路由下,只改變路由后面跟的參數值,當發生跳轉的時候網址導航欄確實改變了參數,但是頁面數據卻沒有根據路由的參數發生改變,需要手動刷新一下才有效果,但是這不是我們想要的效果。
例如從?/user/foo?導航到?/user/bar,原來的組件實例會被復用。因為兩個路由都渲染同個組件,比起銷毀再創建,復用則顯得更加高效。不過,這也意味著組件的生命周期鉤子不會再被調用。詳情看官網Vue router
想要達到我們預期的效果,路由參數的變化作出響應的話,你可以用 watch (監測變化) $route?對象:
方法一:
// 監聽,當路由發生變化的時候執行
watch:{
??$route(to,from){
????????console.log(to.path);
????????// 對路由變化作出響應...
??}
},
方法二:
在父組件的router-view上加個key
<router-view :key="$route.fullPath"></router-view>
當然還有更多的解決方案,小飛就不一一實例了(因為小飛也不太懂,哈哈??)。想要看更多的解決方案,小伙伴們可以看看其他大牛的博客,或者官網。