用原生js模拟v-model底层原理
html内容
<div id="show"></div>
<input type="text" id="inp">
js内容
//模拟vue底层源码
var obj = {};
var showDiv = document.querySelector("#show");
var inp = document.querySelector("#inp");
Object.defineProperty(obj, 'name', {
//当obj.name获取值时自动调用
get: function() {
console.log('title被获取了');
return val;
},
//当obj.name的值被设置时自动调用
set: function(newVal) {
inp.value = newVal;
showDiv.innerHTML = newVal;
}
})
//想办法让obj.name被设置
inp.addEventListener("input", function(e) {
obj.name = e.target.value;
})