发布/订阅模式
- 订阅者
- 发布者
- 信号中心
我们假定,存在一个“信号中心”,某个任务执行完成,就向信号中心发布(publish)一个信号,其他任务可以向信号中心订阅(subscribe)这个信号,从而知道什么时候自己可以开始执行。这就叫做“发布/订阅模式”(publish-subscribe pattern)
常见的发布/订阅模式:Vue
的自定义事件、node的事件处理机制。
let vm = new Vue()
vm.$on('dataChange', () => {
console.log('dataChange')
})
vm.$on('dataChange', () => {
console.log('dataChange1')
}) vm.$emit('dataChange')
在vue中vue实例既是发布者,也是订阅者,又是消息中心。
- 兄弟组件通信过程:
// eventBus.js
// 事件中心
let eventHub = new Vue()
// ComponentA.vue
// 发布者
addTodo: function () {
// 发布消息(事件)
eventHub.$emit('add-todo', {
text: this.newTodoText }) this.newTodoText = ''