面试题——请你说说MVVM和MVC的区别

312 阅读2分钟

我们先来说说什么是MVC,它的全名是 Model View Controller。

a83f13e1e76cfe84dc595003276065f1.jpg

MVC

Model即模型层,它是是用来处理应用程序数据逻辑部分的,模型对象是负责在数据库中存取数据的

View即视图层,它是应用程序中处理数据显示的部分,视图是依据模型数据创建的

Controller即控制器,它是应用程序处理用户交互部分的,控制器是负责从视图读取数据,控制用户输入,并向模型发送数据的

MVC执行流程

image.png

MVC不是一种设计模式,而是一种设计思想,为什么这么说呢?

\

设计模式它是一种固定的方法,不灵活,而且有特定的使用场景,而设计思想:是一种思想,比较灵活,由多种设计模式组合实现

MVC的优缺点

\

优点:

降低代码耦合性,方便维护,可以利于分工协作;有利于组件的重用

缺点:

增加了系统结构和实现的复杂性,视图层展示依赖与模型层,视图层需要很少的字段,但是模型层全部提供,性能上有一定影响

MVVM

Model即数据层,从数据库或者后端请求回来的数据,也有可能是自己定义的数据

View即视图层,通常就是DOM层,主要的作用是给用户展示各种信息

ViewModel即视图模型层,是View和Model沟通的桥梁,实现了数据双向绑定

具体可以参考下面的官方图

总结:

MVVM相比于MVC,实现了View和Model的同步,也就是当Model的属性发生改变时,改属性对应的View层显示会自动改变,也就是Vue数据驱动的思想。

而且还简化了业务与界面的依赖,还解决了数据频繁更新的问题

最后注意一点:Vue并没有完全遵循MVVM的思想