枫树林给大地铺上了红色的地毯,秋风一吹,枫叶发出哗啦啦的响声,好似在鼓掌欢庆这丰收的景象。看,那菊花,它们开得多么热烈!距么旺盛!黄的、红的、白的、紫的……一朵朵,一簇簇,迎着秋风,披着寒霜,争妍斗艳,喷芳吐香,开得到处都是,简直成了一个锦簇的世界。
简介:
Vue 最独特的特性之一,是其非侵入性的响应式系统。数据模型仅仅是普通的 JavaScript 对象。而当你修改它们时,视图会进行更新。简单的说,就是数据变视图变。
当你把一个普通的 JavaScript 对象传给 Vue 实例的 data 选项,Vue 将遍历此对象所有的属性,并使用 Object.defineProperty 把这些属性全部转为 getter/setter。Object.defineProperty 是 ES5 中一个无法 shim 的特性,这也就是为什么 Vue 不支持 IE8 以及更低版本浏览器。
下例为模拟,Vue数据双向绑定底层实现原理
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>数据双向绑定底层实现</title>
</head>
<body>
<button onclick="changeTest()">点我改变</button>
<div id="test">哈哈哈</div>
<script>
let test={};
let middle='';
Object.defineProperty(test,'name',{
set(val){
console.log('触发setter');//设置、修改时触发set
middle=val;
watcher();
},
get(){
console.log('触发geter');//获取、使用时触发get
return middle;
}
})
function changeTest(){
test.name="变变变";//触发setter
}
function watcher(){
document.getElementById('test').innerHTML=test.name;//触发get
}
</script>
</body>
</html>
到此这篇关于Vue数据双向绑定底层如何实现原理就介绍到这了。我们的思想局限和我们过少的经历限制了我们人生的发展,同样的事情,十年前和十年后的看法并不相同我们唯一的聪明,就是要、学习他人的经验和成功,来丰富我们自己贫乏的人生。更多相关Vue数据双向绑定底层如何实现原理内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!