目标

自己实现轮子:数据响应式引擎

图片描述

基石

属性拦截器
图片描述

操作对象

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]);
        }
    }
}

图片描述


有李
108 声望12 粉丝

通过注意生活中细节性的风景


« 上一篇
路由
下一篇 »
java