首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue 2.0实例未侦听vue路由器组件发出的事件

Vue 2.0实例未侦听vue路由器组件发出的事件
EN

Stack Overflow用户
提问于 2016-09-14 17:01:32
回答 3查看 9.1K关注 0票数 15

我使用的是Vue 2.0-rc.6 (目前最新)和Vue-router2.0-rc.5(目前最新)。

我试图在我的一个路由器组件中执行this.$emit('custom-event'),并在我的Vue实例中执行this.$on('custom-event', () => { console.log('I heard an event') }),但是事件没有被监听。路由器组件本身正在侦听事件,但没有侦听Vue实例。

有什么想法吗?

看看这个jsfiddle

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-16 17:53:25

感谢http://forum.vuejs.org/topic/5235/vue-2-0-instance-is-not-hearing-events-emitted-by-vue-router-components/2中的LinusBorg指出,来自$emit的事件不会传播到父实例。

不过,我并没有使用LinusBorg推荐的解决方案让它工作。取而代之的是,我通过执行this.$router.app.$emit('eventname')来实现它

票数 12
EN

Stack Overflow用户

发布于 2017-03-11 14:27:35

来自$emit的事件不会传播到父实例。父级必须在模板中的组件上主动侦听它。

代码语言:javascript
复制
<router-view @eventname="callbackMethod" />
票数 21
EN

Stack Overflow用户

发布于 2018-08-05 03:50:31

使用watcher我们可以实现同样的事情,这意味着当我的路由更新时,我们可以通过watcher捕获事件。

代码语言:javascript
复制
    watch: {
        '$route': function(to, from) {
              console.log('To :', to.path); // current route
              console.log('from:', from.path); // old route
         }
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39486443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档