前言
大家一说起MVC 都知道,但是和MVVM一对比就搞混了。下面分别以JavaWeb对MVC进行举例,以Vue来对MVVM进行举例。争取搞清楚MVC和 MVVM。
MVC模式(偏后端,以JavaWeb举例)
MVC模式是更偏向于JavaWeb后端的一种设计模式。 在我之前的文章中有讲过该模式和SSM框架的关系。下面给出文章链接:
MVC架构、SSM框架的关系
下面两张图截取自上文,详情可直接移步该博客
MVVM模式(偏前端,以Vue举例)
由于该模式更加偏向于前端概念,如果想看懂该模式,必须懂一点前端的知识。这里仅以Vue为例。
一图说清MVVM(图来源自尚硅谷课件,本人进行二次加工):
在代码中体现上图中的Data Bindings(通过VM,将M绑定到View):
在代码中体现上图中的DOM Listeners(通过VM,将V绑定到M):
执行效果:
同时做到了将M绑定到V,和V绑定到M,就是实现了双向绑定。
VM(就是ViewModel),其实就是Vue实例本身,它负责将View和Model绑定起来
这就是Vue的MVVM体现!要理解透彻,需要对ViewModel,双向绑定,Vue实例都有详细的理解。其它前端框架对MVVM有不同的解释,但是原理和思想上是一致的。
最后看维基百科对其的定义:
后记
本文只以JavaWeb体现了MVC架构,以Vue体现了MVVM架构。其它技术栈对MVC和MVVM会有不同的解释,但是原理和思想上是一致的。
以上是我的个人见解,欢迎大家讨论,指正。