理解数据代理
数据代理定义:通过一个对象代理对另一个对象中的属性进行操作(读/写)
let obj1 = { x: 100 };
let obj2 = { y: 200 };
Object.defineProperty(obj2,'x',{
get(){
return obj1.x
},
set(value){
obj1.x=value
}
})
Vue中的数据代理
1、定义:通过vm对象来代理data对象中的属性操作(读/写)
2、好处:更加方便的操作data中的数据
3、基本原理
1、通过Object.defineProperty()把data中的全部属性添加到vm实例上
2、为每一个添加到vm上的属性都指定一个getter/setter
3、在getter/setter内部去操作(读/写)data中对应的属性