提醒一下,當使用路由參數時,例如從 /user/foo
導航到 /user/bar
,原來的組件實例會被復用。因為兩個路由都渲染同個組件,比起銷毀再創建,復用則顯得更加高效。不過,這也意味着組件的生命周期鈎子不會再被調用。
復用組件時,想對路由參數的變化作出響應的話,你可以簡單地 watch (監測變化) $route
對象:
const User = {
template: '...',
watch: {
'$route' (to, from) {
// 對路由變化作出響應...
}
}
}
或者:
const User = { template: '...', beforeRouteUpdate (to, from, next) { // react to route changes...
// don't forget to call next()
} }
注意是:
(1)從同一個組件跳轉到同一個組件。
(2)生命周期鈎子created和mounted都不會調用。