<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="app">
获取到的值:<span id="bbb"></span>
<br/>
<input type="text" id="aaa"/>
</div>
<!-- <script type="text/javascript" src="./lib/vue-2.6.10.js"></script> -->
<script>
// let obj = {
// bbbVal: ''
// };
// let newObj = JSON.parse(JSON.stringify(obj));
// Object.defineProperty(obj, 'bbbVal', {
// get(){
// return newObj.bbbVal;
// },
// set(val){
// newObj.bbbVal = val;
// observer();
// }
// })
// function observer(){
// bbb.innerHTML = newObj.bbbVal;
// aaa.value = newObj.bbbVal;
// }
// aaa.oninput = function() {
// obj.bbbVal = this.value;
// }
// setTimeout(() => {
// obj.bbbVal = 'setbbbData'
// }, 1000)
/**
*
* 1、对原始数据克隆
* 2、需要分别对对象中的属性单独监听
*
*/
let obj = {};
obj = new Proxy(obj, {
get(target, prop){
console.log("get")
return target[prop];
},
set(target, prop, value){
console.log("set")
target[prop] = value;
observer();
}
})
function observer(){
bbb.innerHTML = obj.bbbVal;
// aaa.value = obj.bbbVal;
}
aaa.oninput = function() {
obj.bbbVal = this.value;
}
</script>
</body>
</html>
v-model双向绑定原理
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- v-model双向绑定原理,实现自定义v-model 本文会随着时间进行更正 再次更新:2019/10/16 15...