我正在使用Javascript开发Vuejs组件。我有一个组件将EventBus发射到其他组件。在发送器组件上,我有一个索引列表,该索引一目了然地转到另一个组件,以评估其是否为真。例如:
listA: 0
listA: 0
listA: 0
listA: 0
listA: 1
listA: 0
listA: 0
在接收器组件上,我一张一张地得到listA。我正在做一个开关箱,以查看何时接收到值1并将其返回给具有特定CSS的div中的html。在我的交换机中,遇到如下值1时,我取消了事件总线:
switch(listA) {
case 1:
return something
EventBus.$off('event-message');
case 0:
// do nothing
}
这很好,但是...我的问题是当我必须在同一页面中针对不同的div使用两次或多次此操作时。我想对所有div使用相同的事件,否则代码会越来越长,当我在一个div中取消事件时,它将取消所有div中的事件。是否有人有想法可以在不取消事件的情况下返回值1,并且如果遇到值1就会停止查看其余值?
Vue的EventBus
有3种使用$off
的方式:
首先,我完全反对使用事件总线,这就像您将扬声器从人群中喊出来并喊着GABRIEL,加百利能听到多少消息并做出回应,这就是事件总线的效果,它会尖叫每个人都可以听到,这对于您的应用程序来说可能是个大问题,我建议您使用事件传播,直到通过$ emissions和properties到达理想的组件为止。但是要停止事件,必须触发事件。EventBus。$ off('event-message',nameFunctionAction);https://vuejs.org/v2/guide/components.html#Listening-to-Child-Components-Events