Vue的双向绑定原理
只是储备:什么是MVVM模式,和MVC的区别?
MVVM 是模型-视图-视图模型,Vue和React都在使用MVVM模式,vm是v和m的桥梁,view页面和m模型数据之间通过vm是存在双向联系的; vue实现双向数据绑定的原理就是利用了 Object.defineProperty() 这个方法重新定义了对象获取属性值(get)和设置属性值(set)的操作来实现的
vue数据的双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的。其核心就是通过Object.defineProperty()方法设置set和get函数来实现数据的劫持,在数据变化时发布消息给订阅者,触发相应的监听回调。也就是说数据和视图同步,数据发生变化,视图跟着变化,视图变化,数据也随之发生改变;