介绍一下 MVC MVVM

1. 什么是MVVM?

在MVVM框架下 视图和模型是不能直接通信 的,只能通过ViewModel进行交互,它能够监

听到数据的变化,然后通知视图进行自动更新,而当用户操作视图时,VM也能监听到视图

的变化,然后通知数据做相应改动,这实际上就实现了数据的 双向绑定 。并且V和VM可以

进行通信。

Model(模型)

模型是指代表真实状态内容的领域模型(面向对象),或指代表内容的数据访问层(以数据为中

心)。
View(视图)

就像在MVC和MVP模式中一样,视图是用户在屏幕上看到的结构、布局和外观(UI)。
ViewModel(视图模型)

视图模型是暴露公共属性和命令的视图的抽象。MVVM没有MVC模式的控制器,也没有MVP模式的presenter,有的是一个绑定器。在视图模型中,绑定器在视图和数据绑定器之间进行通信。

2. 什么是MVC?

MVC是应用最广泛的软件架构之一,一般MVC分为:Model(模型),View(视图),Controller(控制器)。 这主要是基于分层的目的,让彼此的职责分开.View一般用过Controller来和Model进行联系。Controller是Model和View的协调者,View和Model不直接联系。基本都是单向联系。M和V指的意思和MVVM中的M和V意思一样。C即Controller指的是页面业务逻辑。MVC是单向通信。也就是View跟Model,必须通过Controller来承上启下。

Model(模型)表示应用程序核心(如数据库)。

View(视图)显示效果(HTML页面)。

Controller(控制器)处理输入(业务逻辑)。

MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。   通常模型对象负责在数据库中存取数据。

View(视图)是应用程序中处理数据显示的部分。   通常视图是依据模型数据创建的。

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

3. MVC与MVVM的区别:

MVC和MVVM的区别并不是VM完全取代了C,ViewModel存在目的在于抽离Controller中展示的业务逻辑,而不是替代Controller,其它视图操作业务等还是应该放在Controller中实现。也就是说MVVM实现的是业务逻辑组件的重用。

  • MVC中Controller演变成MVVM中的ViewModel
  • MVVM通过数据来显示视图层而不是节点操作
  • MVVM主要解决了MVC中大量的dom操作使页面渲染性能降低,加载速度变慢,影响用户体验
相关推荐
xiaodaidai丶25 分钟前
解决Sa-Token在 Spring MVC + WebFlux 混合架构中流式接口报错SaTokenContext 上下文尚未初始化的问题
spring·架构·mvc
xiaodaidai丶8 小时前
Spring Web MVC的异步请求解读
spring boot·spring·mvc
Thomas.Sir8 小时前
SpringMVC 工作原理深入解析
spring·设计模式·mvc·spring mvc
毅炼14 小时前
JVM常见问题总结(2)
java·jvm·mvc
Lyyaoo.1 天前
Spring MVC中用于处理HTTP请求的常用注解
spring·http·mvc
刀法如飞13 天前
一款Go语言Gin框架MVC脚手架,满足大部分场景
go·mvc·gin
莫寒清14 天前
Spring MVC:@PathVariable 注解详解
java·spring·mvc
莫寒清17 天前
Spring MVC:@RequestParam 注解详解
java·spring·mvc
莫寒清18 天前
Spring MVC:MultipartFile 详解
java·spring·mvc