美文网首页
js之观察者模式与发布订阅模式

js之观察者模式与发布订阅模式

作者: GGatsby | 来源:发表于2019-10-22 11:07 被阅读0次

https://www.cnblogs.com/leaf930814/p/9014200.html

观察者模式:
1.两者相互知道,Subject调用Observer,Observer观察着Subject
2.Subject负责添加、删除和发出通知,Observer接收到通知之后update
3.两者耦合在一起

发布订阅模式:
1.是一个控制中心,作为桥梁作用
2.控制中心实现添加、删除以及更新
3.事件可以解耦合

vue中实际应用的解析:
https://www.cnblogs.com/canfoo/p/6891868.html
1.数据劫持defineProperty+观察者模式
2.遍历data,为每一个属性添加数据劫持
3.在get中,添加观察者watcher到list中
4.在set中,更新data并发出更新通知,实现页面同步更新展示
5.watcher是观察者内核,观察对应data的变化,初始化时先通过get方法取值一次,从而调用数据劫持中的get方法,实现观察者watcher的添加
6.更新数据时,调用数据劫持中的set方法,发出更新的通知从而调用对应watcher的update,在update的cb中,实现视图的更新。
7.Data是主体对象,Dep是观察者,在每一个Dep中添加对应的watcher。

image.png

相关文章

网友评论

      本文标题:js之观察者模式与发布订阅模式

      本文链接:https://www.haomeiwen.com/subject/nvxqvctx.html