他们俩都属于一架构,或者说是一个架构模式。
MVC模式
MVC:也就是model-view-controller,即模型-视图-控制器。C也指页面的业务逻辑。
使用MVC的目的就是将M和V的代码分离。MVC是单向通信,也就是View和Model,必须通过Controller来承上启下。
MVVM
MVVM模式是由MVC演变过来的。
为什么会有MVVM框架的出现?
在过去的10年中,我们已经把很多传统的服务器端代码放到了浏览器,这样就产生了成千上万行的JavaScript代码,它们连接了各种各样的HTML和CSS文件,但是缺乏正规的组织形式,这也就是为什么越来越多的开发者使用JavaScript框架。比如angular、vue、react。浏览器的兼容性问题已经不再是前端的阻碍。随着前端项目越来越大,项目的可维护性和拓展性、安全性等成了主要问题。当年为了解决解决浏览器兼容问题,出现了很多的类库,其中最典型的就是jQuery。但这类库没有实现对业务逻辑的分成,所以维护性和扩展性极差。综合上面的原因,才有了MVVM模式在这一框架的出现。比如vue,通过数字的双向绑定,极大提高了开发效率。
MVVM模式说明
MVVM是model-view-viewmodel的缩写,也就是把MVC模式中的controller演变成viewmodel。Model代表数据层,View代表视图层UI组件,viewmodel是View和model层之间的桥梁,数据会绑定到viewmodel层,并自动将数据渲染到页面中,而当视图层变化的时候也会通知viewmodel。
MVVM模式的核心就在于对View和viewmodel之间的双向数据绑定,是的viewmodel的状态改变可以自动传递给view,即所谓的数据双向绑定。