MVC:M代表model数据层 , V代表view视图层 , C代表controller控制层, 各部分之间的通信都是单向的。
View 传送指令到 Controller,Controller 完成业务逻辑后,要求 Model 改变状态Model 将新的数据发送到 View,用户得到反馈
在MVC 中,View是可以直接访问Model的,所以View里面包含的Model信息以及一些业务逻辑。Mvc模型关注的是Model的不变,所以在Mvc模型里面,Model不依赖于View,但是View是依赖于Model的。不仅如此,因为有一些业务逻辑在View中实现了,导致要更改View也是比较困难的,导致那些业务逻辑是无法重用的。
MVVM:M代表model数据层,V代表视图层,VM就是viewmodel层,各部分通信都是双向的,采用双向数据绑定
ViewModel层,就是View和Model层的粘合剂,就是把原来ViewController层的业务逻辑和页面逻辑等剥离出来放到ViewModel层
MVVM在概念上是真正将页面与数据逻辑分离的模式,它把数据绑定工作放到JS文件中去实现,这个JS文件的主要功能就是完成数据的绑定,也就是把model绑定到UI的元素上。除此之外,MVVM还有一个重要特性就是双向绑定,它更方便我们去同时维护页面上都依赖于某个字段的N个区域,而不用动手更新他们。