We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
发布-订阅(观察者)模式:What-How-Why 实现一个EventBus Vue中发布-订阅模式的实践 - 响应式原理(源码) - Vue的事件机理
发布-订阅模式也叫观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知. 在 javascript 开发中,我们一般用事件模型来替代传统的发布-订阅模式. 使用场合: 当一个对象的改变需要同时改变其它对象,并且它不知道具体有多少对象需要改变的时候,就应该考虑使用观察者模式
优点: 支持简单的广播通信,自动通知所有已经订阅过的对象; 页面载入后发布者很容易与订阅者存在一种动态关联,增加了灵活性; 发布者与订阅者之间的抽象耦合关系能够单独扩展以及重用。
不足: 创建订阅者本身要消耗一定的时间和内存,而且当你订阅一个消息后,也许此消息最后都未发生,但这个订阅者会始终存在于内存中; 虽然可以弱化对象之间的联系,但如果过度使用的话,对象和对象之间的必要联系也将被深埋在背后,会导致程序难以跟踪维护和理解。
主要搞清楚Vue源码封装的几个类: Observer、Dep、Watcher等
可以展开每个监听后的响应数据上__ob__属性
The text was updated successfully, but these errors were encountered:
No branches or pull requests
目录提要
什么是发布订阅模式
发布-订阅模式也叫观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知. 在 javascript 开发中,我们一般用事件模型来替代传统的发布-订阅模式.
使用场合:
当一个对象的改变需要同时改变其它对象,并且它不知道具体有多少对象需要改变的时候,就应该考虑使用观察者模式
为什么使用观察者模式——优缺点
优点:
支持简单的广播通信,自动通知所有已经订阅过的对象;
页面载入后发布者很容易与订阅者存在一种动态关联,增加了灵活性;
发布者与订阅者之间的抽象耦合关系能够单独扩展以及重用。
不足:
创建订阅者本身要消耗一定的时间和内存,而且当你订阅一个消息后,也许此消息最后都未发生,但这个订阅者会始终存在于内存中;
虽然可以弱化对象之间的联系,但如果过度使用的话,对象和对象之间的必要联系也将被深埋在背后,会导致程序难以跟踪维护和理解。
Vue内部观察者模式—Vue响应式原理
浏览器原生事件 —— 自定义事件
参考
The text was updated successfully, but these errors were encountered: