vue数据双向绑定原理
vue.js采用数据劫持结合-订阅者模式的方式,通过object.defineproperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调来渲染视图
什么是数据双向绑定
vue是一个mvvm框架(数据双向绑定)。数据发生变化的时候,视图也就发生变化,视图发生改变时候,数据也会同步变化;数据双向绑定一定是对于UI控件,非UI控件不会涉及到数据双向绑定。单向数据绑定是使用状态管理工具前提(如redux)
实现简单数据双向绑定
使用object.defineproperty()来定义属性的set函数,属性被赋值的时候,修改input的value值以及span中的innerHTML;然后监听input的keyup事件,修改对象的属性值,实现简单数据双向绑定
思路
输入框以及文本节点与data中数据绑定
输入框内容变化时,data中的数据同步变化;view => model的变化
data中的数据变化时,文本节点的内容同步变化;model=>view的变化