Vue 3.0 的目标是让 Vue 核心变得更小、更快、更强大,因此 Vue 3.0 增加以下这些新特性: (1)监测机制的改变3.0 将带来基于代理 Proxy 的 observer 实现,提供全语言覆盖的反应性跟踪。这消除了 Vue 2 当中基于 Object.defineProperty 的实 ...
分类:
其他好文 时间:
2020-04-04 11:36:35
阅读次数:
70
观察者模式 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。 spring中的监听器就是观察者模式的一种实现方式,当某个动作执行结束以后,发布一个事件,所有订阅该事件的监听器执行自己的逻辑处 ...
分类:
其他好文 时间:
2020-04-01 10:42:33
阅读次数:
66
## 观察者和发布订阅模式的区别 观察者模式和发布订阅模式最大的区别就是发布订阅模式有个事件调度中心。 ### 一、观察者模式(Observer) 观察者模式指的是一个对象(Subject)维持一系列依赖于它的对象(Observer),当有关状态发生变更时 Subject 对象则通知一系列 Obse ...
分类:
其他好文 时间:
2020-03-29 19:50:45
阅读次数:
83
行为设计模式是识别对象之间的通信模式,行为模式涉及对象之间的责任分配,或者,将行为封装在对象中并将请求委托给它,也就是对象之间的关系。 涉及:* 状态模式中介模式* 观察者模式备忘录模式迭代器模式命令模式* 策略模式* 模板模式* 访客模式示例责任链模式 观察者模式 根据GoF定义,observer ...
分类:
其他好文 时间:
2020-03-27 21:43:19
阅读次数:
86
观察者模式,我们有很多其他的方式来称呼它。比如熟悉的发布/订阅模式,回调方式,Listen监听等。 我们看到很多源码中有Observer,Listen,Hook,Callback,基本用到了观察者模式; 话不多说,直接来点代码说明下 首先定义被观察者(抽象的,公有的) public interfac ...
分类:
其他好文 时间:
2020-03-27 13:13:46
阅读次数:
111
组件间发通知可以使用 observer.pub,其他组件在 componentDidMount中 observer.sub。在新的react中已经不再使用ref,取而代之的 onRef={ (node) => this.xxx = node }然后使用 this.xxx调用方法。组件间共享数据可以使 ...
分类:
其他好文 时间:
2020-03-26 19:58:20
阅读次数:
69
结构 subs里放置Watcher,当改变data数据时,触发对应的Dep通知其subs里的watcher进行更新。 代码 首先在 observer 的过程中会注册 get 方法,该方法用来进行「依赖收集」。在它的闭包中会有一个 Dep 对象,这个对象用来存放 Watcher 对象的实例。其实「依赖 ...
分类:
其他好文 时间:
2020-03-21 21:34:43
阅读次数:
59
测试例子 主要函数定义 716:Dep 发布者定义 767:Vnode 虚拟节点定义 922:Observer 劫持数据的函数定义 4419:Watcher 订阅者定义 5073:function Vue() 定义 数据劫持过程 Vue.prototype._init 中,在 后和 之前调用 ini ...
分类:
其他好文 时间:
2020-03-21 21:15:36
阅读次数:
57
原理 computed 本质是一个惰性求值的订阅者。data 属性的 Observer 挂在 属性下,而 computed 属性挂在 下。而发布者 Dep 里存放了两个订阅者,而和computed相关的订阅者,其实只做了一件事情,标记 dirty 为 true,等待 get 时再真正计算。 comp ...
分类:
其他好文 时间:
2020-03-21 21:00:08
阅读次数:
87
一、引言 在现实生活中,处处可见观察者模式,例如,微信中的订阅号,订阅博客和QQ微博中关注好友,这些都属于观察者模式的应用。在这一章将分享我对观察者模式的理解,废话不多说了,直接进入今天的主题。 二、 观察者模式的介绍 2.1 观察者模式的定义 从生活中的例子可以看出,只要对订阅号进行关注的客户端, ...