vue响应式原理简单实现:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input id="index--input" value="">
<p id="index--p"></p>
</body>
<script type="text/javascript">
let obj = {}
let value = undefined
Object.defineProperty(obj, 'value', {
get() {
console.log('get was called')
return value
},
set(v) {
console.log('set was called')
value = v
document.getElementById('index--p').innerHTML = v
}
})
window.onload = function () {
window.addEventListener('input', function (event) {
obj.value = event.target.value
})
}
</script>
</html>