现如今,很多知名的前端框架都使用了MVVM模式,比如vue.js、angular等。MVVM模式是由经典的软件架构MVC衍生来的,当view(视图)层发生变化时,会自动更新ViewModel(视图模型),反之亦然。
MVVM框架下,视图和数据是不能直接通信的,它们通过ViewModel来通信。ViewModel通常要实现一个observer(通信观察者),当数据发生变化时,ViewModel(Directive)能够监听到数据的这种变化,然后通知对应的视图自动更新;而当用户操作视图时,ViewModel(Dom-Listener)也能监听到视图的变化,然后通知数据做改动,这样就实现了数据的双向绑定。