Appearance
事件发布订阅模式(Event Bus)
来源:
js/mvvm.html
通过 $on 注册事件、$emit 触发事件,实现组件间通信。这是 Vue 2 事件总线的核心原理。
演示:Event Bus 交互
注册多个事件监听器,点击按钮触发事件,观察回调执行。
原理
eventHub.subs = {
'sum': [fn1, fn2], // 同一事件可注册多个回调
'inputchange': [fn3]
}$on(type, fn)— 将回调推入对应类型的队列$emit(type, ...args)— 遍历队列,依次调用所有回调
原始代码中
eventHub.$emit('sum', 1, 2, 4, 5, 6, 7, 8, 9, 10)触发后,回调通过reduce求和输出52。