目标
自己实现轮子:数据响应式引擎
基石
属性拦截器
操作对象
Data
数据类型
数据处理
class Observer {
value: any;
dep: Dep;
vmCount: number;
constructor(value: any) {
this.value = value;
this.dep = new Dep();
this.vmCount = 0;
def(value, '__ob__', this);
if(Array.isArray(value)) {
augment(value, arrayMethods, arrayKeys);
this.observerArray(value);
}else {
this.walk(value);
}
},
walk(obj: Object) {
const keys = Object.keys(obj);
for (let i = 0; i < keys.length; i ++) {
defineReactive(obj, keys[i]);
}
},
observerArray (items: Array<any>) {
for (let i = 0; i< items.length; i++) {
observer(items[i]);
}
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。