商城网站设计策划,个人网站建设课程介绍,建立网站代码,如何查找网站建设时间vue2的话主要使用的是defineProperty对已有属性添加get,set,从而完成对数据的响应式控制#xff0c;但每次需要for循环对属性进行遍历 function DefineReactive(target, key, value) {//存在多层嵌套的objectObserver(value);Object.defineReactive(target, key, {get() {retu…vue2的话主要使用的是defineProperty对已有属性添加get,set,从而完成对数据的响应式控制但每次需要for循环对属性进行遍历 function DefineReactive(target, key, value) {//存在多层嵌套的objectObserver(value);Object.defineReactive(target, key, {get() {return value;},set(newValue) {if(value ! newValue) {value newValue;Observer(newValue); }} })
}function Observer(data) {if (typeof data ! object || data null) {return data;
}for (let i in data) {DefineReactive(data, i, data[i])
}
}vue3的响应式原理是借助new Proxy完成对数据的控制可以解决vue2中不能对map,set或者一些自定义数据类型的数据绑定
let proxyHandler {get(target, key) {return target[key]
},set(target, key, value) {target[key] value;}
}
const reactive(target) {return newProxy(target, proxyHandler);
}