VueJS:多个组件侦听同一事件

时间:2016-11-09 16:08:55

标签: vue.js

我有多个组件正在侦听同一事件:标签正在侦听其内容的事件。

所以在每个标签中我都有bus.$on('content::event', () => {})

但我的问题是如何知道哪个Tab组件应该因为事件而起作用。

选项将在事件中传递tab_id,然后在选项卡中检查tab_id是否等于其ID,但我不喜欢这种方法,这似乎是一项不必要的检查。 / p>

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

created: function(){
  bus.$on('content::event', this.compareTabID)
},
methods: {
  compareTabID: function(tab_id){
    if (tab_id == this.id){%do something%}
  }
}

答案 1 :(得分:0)

如果要在活动选项卡上侦听事件,则可以使用活动类找到该选项卡。

如果此选项卡上有活动的课程,则请采取措施,否则不要采取行动。

使用id也不是一个坏习惯,因为id总是唯一的。

如果此答案无济于事,请粘贴您的更多代码以说明情况。