可认为是为观察者模式解耦的进阶版本,特点如下:
在发布者与订阅者之间添加消息中心,所有的消息均通过消息中心管理,
而发布者与订阅者不会直接联系,实现了两者的解耦。
·核心概念:
·消息中心 Dep
·订阅者 Subscriber
·发布者 Publisher

<!DOCTYPE html>
<html lang=“en”>
<head>
<meta charset=“UTF-8”>
<meta name=“viewport” content=“width=device-width, initial-scale=1.0”>
<title>Document</title>
</head>
<body>
<script src=“https://cdn.jsdelivr.net/npm/vue@2.6.12“></script>
<script>
// 创建了一个 Vue 实例(消息中心)
const eventBus = new Vue()
// 注册事件(设置订阅者)
eventBus.$on(‘dataChange’, () => {
console.log(‘事件处理功能1’)
})
eventBus.$on(‘dataChange’, () => {
console.log(‘事件处理功能2’)
})
// 触发事件(设置发布者)
eventBus.$emit(‘dataChange’)
</script>
</body>
</html>