vue数据绑定原理

<body>
<h1>{{title}}</h1>
<p>{{title}}</p>
<p>{{num}}</p>

<script>
// var title = "hello";
// var num = 10;
// vue中数据绑定是通过set,get属性实现的,
// 所以不支持es5的浏览器就不能甩vue

// 在组件配置对象中的data中的数据,在组件创建时,都会被作为set,get属性添加到组件对象上,在set方法中进行了组件的重新渲染,所以每当data中的数据发生变化,页面就会立刻重新渲染。
function initAttr(){

let title;
let num;
Object.defineProperty(window,"title",{
set(v){
title=v;
render();
},
get(){
return title;
}
})

Object.defineProperty(window,"num",{
set(v){
num=v;
render();
},
get(){
return num;
}
})
}
initAttr();
var sourceBody= document.body.innerHTML;




function render() {
// document.body.innerHTML
let reg = /\{\{(\w+)\}\}/g;

let content = sourceBody;

let arr;
while (arr = reg.exec(content)) {
console.log(arr);
content = content.replace(arr[0], window[arr[1]])

};
document.body.innerHTML = content;
// content.replace(reg,)
}
render();
title="hello";
num=10;

setTimeout(() => {
num=100;
render();
}, 2000);
</script>
</body>
上一篇:一文教你掌握日期操作 | 带你学《Java语言高级特性》之二十二


下一篇:IoT+Tablestore快速构建智能售货机应用