vue -观察者模式

vue -观察者模式,第1张

观察者模式 vue中的观察者模式什么是观察者模式案例

vue中的观察者模式

vue2 底成的原理是 object.defineproperty() 配合观察者模式
object.defineproperty()对数据可以进行劫持 当数据发生变化的时候
需要通知被依赖的地方
这时候 就需要用上观察者模式

什么是观察者模式

观察者模式简单的说就是 一个对象被多个对象依赖, 会自动更新所有依赖的对象

比如说
游戏发布了一次更新 通知了所有玩家
这时候 玩家就是观察者 游戏就是被观察者 或者说目标

案例
 class Subject{// 目标
    constructor(){
        this.observers=[]
    }
    add(observer){
        this.observers.push(observer)
    }
    notify(newMsg){
        this.observers.forEach(i=>i.consoleFn(newMsg))
    }
}

class Observer{// 观察者
    constructor(name){
        this.name=name
    }
    consoleFn(newMsg){
        console.log(newMsg + '======》》》'+ this.name +'收到了')
    }
}

let sub = new Subject()

let observer1 = new Observer("观察者1")
let observer2 = new Observer("观察者2")

sub.add(observer1) // Observer1 观察 sub
sub.add(observer2) // Observer2 观察 sub

sub.notify("我是被观察者,我发布了一个信息!") // sub 发布消息

// 我是被观察者,我发布了一个信息!======》》》观察者1收到了
// 我是被观察者,我发布了一个信息!======》》》观察者2收到了

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1322141.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-12
下一篇 2022-06-12

发表评论

登录后才能评论

评论列表(0条)

保存