随着前端页面越来越复杂,用户对于交互性要求也越来越高,MVVM模型应运而生。
MVVM最早由微软提出来,它借鉴了桌面应用程序的MVC思想,在前端页面中,把Model用纯JavaScript对象表示,View负责显示,两者做到了最大限度的分离。
把Model和View关联起来的就是ViewModel。ViewModel负责把Model的数据同步到View显示出来,还负责把View的修改同步回Model。
例如:model: $scope.obj={name:'x',age:'12'};
view: <p>{{obj.name}}<p>;
当你修改model的name值时页面就会发生变化(model-->view的变化) ;
view-->model的变化 如<input ng-model="key"> $scope.key的值会随着页面输入的值的变化而变化;
;MVVM的设计思想:关注Model的变化,让MVVM框架去自动更新DOM的状态,从而把开发者从操作DOM的繁琐步骤中解脱出来!