数据代理
- vue中的数据代理: 通过vm对象来代理data对象中属性的操作(读/写)
- 好处: 通过vm对象就可以方便的操作data中的数据
- 基本原理:
1). 通过Object.defineProperty(vm, key, {})给vm添加与data对象的属性对应的属性
2). 所有添加的属性都包含get/set方法
3). 在get/set方法中去操作data中对应的属性
属性描述符:
1.数据描述符
configurable:是否可以重新定义
enumerable:是否可以枚举
value:初始值
writable:是否可以修改属性值
2.访问描述符
get:是一个回调函数,根据其他相关的属性动态计算得到当前属性值
set:也是一个回调函数,监视当前属性值的变化,更新其他相关的属性值