什么是mvvm设计模式

摘要:
目前比较流行的几个框架,例如vue.js、react.js、avalon、angular.js等,给自己的定位都是属于mvvm类型框架,那么什么是mvvm框架呢?mvvm是什么意思呢?聊到mvvm就要提一下java语言中的mvc模式,所以我们想来看下什么是mvc。

目前比较流行的几个框架,例如vue.js、react.js、avalon、angular.js等,给自己的定位都是属于mvvm类型框架,那么什么是mvvm框架呢?mvvm是什么意思呢?

聊到mvvm就要提一下java语言中的mvc模式,所以我们想来看下什么是mvc。

1、MVC模式

mvc即model-view-controller(模型-视图-控制器)

作为前端出身的我,在了解java之前,后台语言给我的感觉是下面这样的

什么是mvvm设计模式第1张

确实后台不用框架的话好像也就是那么乱,后来看到一些MVC的框架算是对MVC模式有了新的认识

model:应用程序中处理数据逻辑的一部分,通常用来模型对象对数据库的存存取等操作

view:视图部分,通常指jsp、html等用来对用户展示的一部分

controller:控制层通常用来处理业务逻辑,负责从试图读取数据,并向模型发送数据

什么是mvvm设计模式第2张

view操作会触发controller去改变model,然后model再去改变视图,这么以来,三个部分代码都分开来写,逻辑就会清晰很多;mvvm就是基于这种设计理念,来创新的提出mvvm这种开发理念来处理前端开发,可以说mvvm就是相当于前端的mvc,下面就来说下mvvm。

2、mvvm模式

mvvm即Model-View-ViewModel,mvvm的设计原理是基于mvc的,所以说mvvm不算是一种创新,充其量是一种改造,这其中的ViewModel便是一个小小的创新;如下图所示:

什么是mvvm设计模式第3张

以上图中可看出三者之间的关系;可以将ViewMode看作是Model和View的连接桥,View可以通过事件绑定Model,Model可以通过数据绑定View,通过ViewMode可以实现数据和视图的完全分离。

3、小结

以上对mvvm做了简单的介绍,如有不当之处,还请批评指正。

免责声明:文章转载自《什么是mvvm设计模式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇(MariaDB)开窗函数用法OpenCV导向滤波(引导滤波)实现(Guided Filter)代码,以及使用颜色先验算法去雾下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Prism完成的一个WPF项目

Prism+MaterialDesign+EntityFramework Core+Postgresql WPF开发总结 之 终极篇 本着每天记录一点成长一点的原则,打算将目前完成的一个WPF项目相关的技术分享出来,供团队学习与总结。 总共分三个部分: 基础篇主要针对C#初学者,巩固C#常用知识点; 中级篇主要针对WPF布局与MaterialDesig...

Android之MVVM开发模式

MVVM 模式简介 MVVM模式是指Model-View-ViewModel。相信看过笔者关于MVP的文章的读者也会发现,无论如何抽象化,在我们的View层中是无法避免的要处理一部分逻辑的。而MVVM模式中的View是将View的状态和行为完全抽象化,把逻辑与界面的控制完全交给ViewModel处理。 MVVM由下面三个核心组件组成: Model:用于获...

IOS:被误解的MVC和被神化的MVVM

MVC的历史   MVC,全称是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写。它表示的是一种常见的客户端软件开发框架。 MVC 的概念最早出现在二十世纪八十年代的 施乐帕克 实验室中(对,就是那个发明图形用户界面和鼠标的实验室),当时施乐帕克为 Smalltalk 发明了...

WPF MVVM实现ListBox添加不同的控件

和之前一样,新建一个WPF工程,Models,Views,ViewModels文件夹,另外添加Selector文件夹。 第一,Selector文件夹中添加TemplateSelectorDemo类 public class TemplateSelectorDemo: DataTemplateSelector { public...

MVVM框架解析(一)

   花了一点时间看了一下微软开源MVVM代码,受义很多!   从代码整体上看,代码分为四大类,   从图中看不能明白我要表达的意思。显而意见!MainApplicationWindow.xaml是应用程序主窗口(V层),DocumentManager.cs是数据管理层,PersonViewModel.cs 是数据层(M层)。 DocumentManage...

Java技术栈

内容: 1、Java基础(JavaSE) 2、数据结构与算法与设计模式 3、计算机理论知识 4、数据库 5、Java web(JavaEE) 6、消息队列 7、Linux及服务器相关 8、分布式相关 9、拓展技能 参考:https://blog.csdn.net/ferrari_cal/article/details/79093826 以下整理结合个人实际...