vue 双向数据绑定的实现学习(二)- 监听器的实现

提到了vue实现的基本实现原理:Object.defineProperty() -数据劫持 和 发布订阅者模式(观察者),下面讲的就是数据劫持在代码中的具体实现。

1.先看如何调用

  

vue 双向数据绑定的实现学习(二)- 监听器的实现

new一个对象,传入我们的参数,这个Myvue ,做了啥?

  

vue 双向数据绑定的实现学习(二)- 监听器的实现

上面看到了在实例化一个Myvue 对象的时候,会执行init方法, init 方法做了两个事,调用了observer 方法,和 实例化调用了 compile 方法。 到这里我们就明白了,实例化一个Myvue后,我们要做的就是监听数据变化和编译模板 。

上面Object.key() 方法,实例化时传入的data里面对应的变量缓存到 Myvue 对象的 $prop上,这样方便在后续处理数据。怎么个方便法呢!...

2.observer 的实现   observer ,模式里面的角色定位 他是一个发布者,也可以理解为是一个观察者

function observer (data) { if(!data || typeof data !== 'object') { return; } Object.keys(data).forEach(key => { // 对每个属性监听处理 defineReactive(data, key, data[key]); }) }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywsgg.html