可认为是为观察者模式解耦的进阶版本,特点如下:

    在发布者与订阅者之间添加消息中心,所有的消息均通过消息中心管理,

    而发布者与订阅者不会直接联系,实现了两者的解耦。

    ·核心概念:

    ·消息中心 Dep

    ·订阅者 Subscriber

    ·发布者 Publisher

    发布-订阅模式 - 图1

    <!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>