-
vue中的数据代理
通过vm对象来代理data中的属性的操作 -
vue中数据代理的好处
更加方便的操作data中的数据 -
基本原理
通过Object.defineProperty() 将data对象的所有属性添加到vm上,给data对象的每一个属性都添加了setter和getter -
getter用于监听数值的读取
-
setter用于监听数值的修改并保存修改后的数值
var obj1 = {x: 8}
// 准备一个空对象
var obj2 = {}
// Object.defineProperty(操作对象,属性,对象)
Object.defineProperty(obj2, 'x', {
// 添加 getter 函数
get() {
return obj1.x
},
// 添加 setter函数
set(val) {
obj1.x = val
}
})