面试题 -- MVC MVVM 的区别?

Ray Shine 2022/8/3 Vue

# 前言

MVCMVVM 是常见的软件架构设计模式,主要通过分离关注点的方式来组织代码结构,优化开发效率。 在开发单页面应用时,往往一个路由页面对应了一个脚本文件,所有的页面逻辑都在一个脚本文件里。页面的渲染、数据的获取,对用户事件的响应所有的应用逻辑都混合在一起,这样在开发简单项目时,可能看不出什么问题,如果项目变得复杂,那么整个文件就会变得冗长、混乱,这样对项目开发和后期的项目维护是非常不利的。

# MVC

  • MModel 负责存储页面的业务数据,以及对相应数据的操作。
  • VView 负责页面的显示逻辑。
  • CController 是 View 层和 Model 层的纽带,它主要负责用户与应用的响应操作。

当用户与页面产生交互的时候,Controller 中的事件触发器就开始工作了,通过调用 Model 层,来完成对 Model 的修改,然后 Model 层再去通知 View 层更新。

MVC原理

# MVVM

  • MModel 代表数据模型,数据和业务逻辑都在 Model 层中定义。
  • VView 代表 UI 视图,负责数据的展示。
  • VMViewModel 负责监听 Model 中数据的改变并且控制视图的更新,处理用户交互操作。

ModelView 并无直接关联,而是通过 ViewModel 来进行联系的,ModelViewModel 之间有着双向数据绑定的联系。因此当 Model 中的数据改变时会触发 View 层的刷新,View 中由于用户交互操作而改变的数据也会在 Model 中同步。

这种模式实现了 ModelView 的数据自动同步,因此开发者只需要专注于数据的维护操作即可,而不需要自己操作 DOM

MVVM原理

最后更新时间: 2025/8/27 00:23:57
ON THIS PAGE