class Vue{
constructor({el,data={}}={}){
this.element = document.querySelector(el);
this.data = new Proxy({},this.proxySetter);
return this;
}
proxySetter(){
return {
set:function(target,key,value){
console.log(`target key ${key} is set to ${value}`);
},
get:function(target,key){
return target[key];
}
}
}
}
let vue = new Vue({
el:'#app',
data:{
name:'zhangsan'
}
});
console.log(vue.data.name);
<div id="app">
<div class="row">
name:<input type="text" v-model="name">
</div>
</div>