VUE中v-model数据双向绑定原理
html
<p id="p"></p>
<input type="text" id="input">
VUE2x
let obj ={}
Object.defineProperty(obj,'txt',{
get(){
return obj
},
set(value){
document.querySelector('#p').innerHTML = value
document.querySelector('#input').value = value
}
})
obj.txt = 'ssr'
document.querySelector('#input').addEventListener('keyup',e=>{
obj.txt = document.querySelector('#input').value
})
VUE3x
let obj={}
let proObj = new Proxy(obj,{
get(){
return this
},
set(target,key,value){
document.querySelector('#p').innerHTML = value
document.querySelector('#input').value = value
}
})
proObj.txt = 'ssr'
document.querySelector('#input').addEventListener('keyup',e=>{
proObj.txt = document.querySelector('#input').value
})