我有以下路线结构
/event/:id/schedule/:id
我想要的是,当用户转到子组件/路线时,父隐藏的某些元素。当用户返回到父级时,这些元素应该返回。
在父组件上,我尝试过观看$ route对象,但没有触发任何内容。在父组件的已安装/创建方法上附加挂钩不会起作用,因为用户仍然在这些路由中。我看到了一些关于
的事情watch(){
$route: {
console.log('route change');
}
}
我也试过这个:
route: {
canReuse: false
},
它没有用,如果没有,我也不想使用它。
任何其他想法都会非常有用。感谢。
答案 0 :(得分:2)
刚刚在vue-router docs中发现了一些路由挂钩/导航警卫。只是将以下内容用于父组件。
beforeRouteUpdate (to, from, next) {
// called when the route that renders this component has changed,
// but this component is reused in the new route.
// For example, for a route with dynamic params /foo/:id, when we
// navigate between /foo/1 and /foo/2, the same Foo component instance
// will be reused, and this hook will be called when that happens.
// has access to `this` component instance.
},
这完美无缺
答案 1 :(得分:0)
您需要在$route
对象in this context周围加上引号:
watch: {
'$route': {
console.log('route change');
}
}