Vue的官方文档中说,Vue 实例的数据都保存在 data 对象中,Vue 将会递归将 data 的属性转换为 getter/setter,从而让 data 的属性能够响应数据变化。
var data = { a: 1 }
// 直接创建一个实例
var vm = new Vue({
data: data
})
vm.a // -> 1
vm.$data === data // -> true
我现在的疑问是:
data() {
return {
favorite: (() => {
return loadFromLocal(this.seller.id, 'favorite', false);
})()
};
}
其中loadFromLocal是全局声明的一个函数,Vue实例将data中的属性转换为getter和setter,这个立即执行函数的返回值会因为其它函数变化而变化。在我没有显示地调用favorite的getter和setter时,Vue是如何监听数据变化的呢?是每隔一段时间检查一遍立即执行函数的返回值吗?
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…