function vue2vmodel(data, key, outvalue) {
Object.defineProperty(data, key, {
get() {
console.log('依赖收集')
return outvalue
},
set(newValue) {
if(newValue === outvalue) return;
console.log('此处通知变化,执行更新操作')
outvalue = newValue;
}
})
}
const data = {
name: 'xxx',
age:'xxx'
}
let keys = Object.keys(data);
for(let i = 0; i< keys.length; i++) {
let key = keys[i];
let value = data[key];
// 每一项都调用vue2vmodel
vue2vmodel(data,key, value)
}