数据代理,通过一个对象代理对另一个对象中的属性的操作(读get/写set)
例:
const vm = new Vue({
el:'#root',
data:{
name:'尚硅谷',
address:'宏福科技园'
}
})
vm._data.name = 尚硅谷:
1、Vue中的数据代理:
通过vm对象来代理data对象中属性的操作(读/写)
2、Vue中数据代理的好处:
更加方便的操作data中的数据
3、基本原理:
通过Object.defineProperty()把data对象中所以属性添加到vm上。
为没一个添加到vm上的属性,都指定一个getter/Setter。
在getter/setter内部去操作(读/写)data中对应的属性。
vm._data里面做了一个数据劫持,为了实现响应式,数据一变,页面上用到这个数据的值也会变