扣丁学堂HTML5培训简述什么是双向数据绑定及MVVM
本篇文章扣丁学堂HTML5培训小编给读者们分享一下什么是双向数据绑定及MVVM,感兴趣的小伙伴就随小编来了解一下吧。
扣丁学堂HTML5培训
双向数据绑定指的是,将对象属性变化与视图的变化相互绑定。换句话说,如果有一个拥有name属性的user对象,与元素的内容绑定,当给user.name赋予一个新值,页面元素节点也会相应的显示新的数据。同样的,如果页面元素(通常是input)上的数据改变,输入一个新的值会导致user对象中的name属性发生变化。
MVVM最早由微软提出来,它借鉴了桌面应用程序的MVC思想,在前端页面中,把Model用纯JavaScript对象表示,View负责显示,两者做到了最大限度的分离。
把Model和View关联起来的就是ViewModel。ViewModel负责把Model的数据同步到View显示出来,还负责把View的修改同步回Model。
总之一句话,数据与表现分离,当某一个数据改变时,页面上所有使用这个数据的元素的内容都会改变。下面是一个最简单的数据绑定的例子,来自Vue2.0源码阅读笔记–双向绑定实现原理,这个例子十分简单粗暴,就做了三件事:
创建 obj 对象,用来保存数据
监听 keyup 事件,当事件触发时,把选定的 input 标签的值赋给 obj 对象的 hello 属性。
改变 obj 对象 的 hello 属性的 set 方法,当 hell 被赋值时,将这个值同时赋值给选中的两个元素。
<!DOCTYPE html>
<head></head>
<body>
<div id="app">
<input type="text" id="a">
<span id="b"></span>
</div>
<script type="text/javascript">
var obj = {};
Object.defineProperty(obj, 'hello', {
get: function() {
console.log('get val:'+ val);
return val;
},
set: function(newVal) {
val = newVal;
console.log('set val:'+ val);
document.getElementById('a').value = val;
document.getElementById('b').innerHTML = val;
}
});
document.addEventListener('keyup', function(e) {
obj.hello = e.target.value;
});
</script>
</body>
</html>
想要了解更多关于HTML5开发方面内容的小伙伴,请关注扣丁学堂HTML5培训官网、微信等平台,扣丁学堂IT职业在线学习教育有专业的HTML5讲师为您指导,此外扣丁学堂老师精心推出的HTML5视频教程定能让你快速掌握HTML5从入门到精通开发实战技能。
H5进阶课程:https://ke.qq.com/course/387348?flowToken=1008605【扫码进入前端H5架构师进阶VIP体验课】
H5基础课程:https://ke.qq.com/course/320523?flowToken=1008606【扫码进入HTML5前端开发VIP免费公开课】
注:点击(了解更多)进入课程直播间
相关推荐
表格的现在还是较为常用的一种标签,但不是用来布局,常见处理、显示表格式数据。在HTML网页中,要想创建表格,就需要使用表格相关的标签。<table> <tr> <td>单元格内的文字</td> ...