Vuejs 2 - 从孩子到父母的时候观看路线

时间:2017-03-31 23:36:00

标签: vue.js vuejs2 vue-router

我有以下路线结构

/event/:id/schedule/:id

我想要的是,当用户转到子组件/路线时,父隐藏的某些元素。当用户返回到父级时,这些元素应该返回。

在父组件上,我尝试过观看$ route对象,但没有触发任何内容。在父组件的已安装/创建方法上附加挂钩不会起作用,因为用户仍然在这些路由中。我看到了一些关于

的事情
watch(){
        $route: {
            console.log('route change');
        }
    }

我也试过这个:

route: {

        canReuse: false

    },

它没有用,如果没有,我也不想使用它。

任何其他想法都会非常有用。感谢。

2 个答案:

答案 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');
    }
}