mvvm
订阅
MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。
展开全文

MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。
信息
- 例 如
- Silverlight、音频
- 外文名
- Model-View-ViewModel
- 简 称
- MVVM
- 隶 属
- 微软
- MVVM优点
- 低耦合 可重用性
MVVM实例解析
WPF的数据绑定与Presentation Model相结合是非常好的做法,使得开发人员可以将
View和逻辑分离出来,但这种数据绑定技术非常简单实用,也是WPF所特有的,所以我们又称之为Model-View-ViewModel(MVVM)。这种模式跟经典的MVP(Model-View-Presenter)模式很相似,除了你需要一个为View量身定制的model,这个model就是ViewModel。ViewModel包含所有由UI特定的接口和属性,并由一个 ViewModel 的视图的绑定属性,并可获得二者之间的松散耦合,所以需要在ViewModel 直接更新视图中编写相应代码。数据绑定系统还支持提供了标准化的方式传输到视图的验证错误的输入的验证。在视图(View)部分,通常也就是一个Aspx页面。在以前设计模式中由于没有清晰的职责划分,UI 层经常成为逻辑层的全能代理,而后者实际上属于应用程序的其他层。MVP 里的M 其实和MVC里的M是一个,都是封装了核心数据、逻辑和功能的计算关系的模型,而V是视图(窗体),P就是封装了窗体中的所有操作、响应用户的输入输出、事件等,与MVC里的C差不多,区别是MVC是系统级架构的,而MVP是用在某个特定页面上的,也就是说MVP的灵活性要远远大于MVC,实现起来也极为简单。我们再从IView这个interface层来解析,它可以帮助我们把各类UI与逻辑层解耦,同时可以从UI层进入自动化测试(Unit/Automatic Test)并提供了入口,在以前可以由WinForm/Web Form/MFC等编写的UI是通过事件Windows消息与IView层沟通的。WPF与IView层的沟通,最佳的手段是使用Binding,当然,也可以使用事件;Presenter层要实现IView,多态机制可以保证运行时UI层显示恰当的数据。比如Binding,在程序中,你可能看到Binding的Source是某个interface类型的变量,实际上,这个interface变量引用着的对象才是真正的数据源。MVC模式大家都已经非常熟悉了,在这里我就不赘述,这些模式也是依次进化而形成MVC—>MVP—>MVVM。有一句话说的好:当物体受到接力的时候,凡是有界面的地方就是最容易被撕下来的地方。因此,IView作为公共视图接口约束(契约)的一层意思;View则能传达解耦的一层意思。
[1]
-
MVVM
2020-11-04 20:13:32MVVM简介 什么是MVVM模式? MVVM是Model-View-ViewModel的缩写,本质上是MVC模式的升级版 ,针对MVC的View进行了更加细致的分工View和ViewViewModel是映射关系,ViewModel将视图UI和业务逻辑分开,它可以取出Model的数据... -
mvvm
2020-04-05 23:45:20mvc 模式。 之前的市面是很常见很流行的一个概念,一个... mvvm 的本质上, 就是mvc的改进版,mvvm 就是将其中的 view的状态和行为 抽象化 ViewModel 的任务 : 让我们将视图和数据区分开,并通过vm来建立连接 ...mvc 模式。 之前的市面是很常见很流行的一个概念,一个编程规范。
mvvm: model(模型-数据) + view(视图) + viewModel(视图模型)遵循的基本原则: 数据驱动视图的方式 mvvm 的本质上, 就是mvc的改进版,mvvm 就是将其中的 view的状态和行为 抽象化 ViewModel 的任务 : 让我们将视图和数据区分开,并通过vm来建立连接 它可以取出 m 中的数据,同时帮忙处理view中需要展示的内容所需的业务逻辑 数据响应式: 是指当数据改变后,会通知到使用该数据的代码, 例如: 视图渲染中依赖的数据,数据发生改变的时候,视图也自动更新
-
Mvvm
2020-01-31 11:21:19Mvvm:Model - View -ViewModel 模型-视图-视图模型 Model 指的是后端传递过来的数据。 View 指的是所看到的页面 ViewModel 指的是连接模型和视图的桥梁: 1、将模型转换成视图,后端传递的数据转换成所看到的数据...Mvvm:Model - View -ViewModel 模型-视图-视图模型
Model 指的是后端传递过来的数据。
View 指的是所看到的页面
ViewModel 指的是连接 模型和视图的桥梁:
1、将模型转换成视图,后端传递的数据转换成所看到的数据 即数据绑定
2、将视图转换成模型,将所看到的页面转换成后段的数据 即DOM监听
双向绑定 就是 这两个方向都实现了
总结:在MVVM的框架下视图和模型是不能直接通信的。
它们通过ViewModel来通信,ViewModel通常要实现一个observer观察者,
当数据发生变化,ViewModel能够监听到数据的这种变化,然后通知到对应的视图做自动更新,
而当用户操作视图,ViewModel也能监听到视图的变化,然后通知数据做改动
vue 会自动检测变化的数据,进行实时更新。
而当用户操作视图,ViewModel也能监听到视图的变化,然后通知数据做改动 也就是认为的吧!!
收藏数
26,266
精华内容
10,506
-
完美解码软件安装包purecode2009
-
c++ 邻接数组实现四种图类
-
Android studio 4.1 Please configure Android SDK
-
MySQL中CREATE语法
-
C++开发提升(1)
-
Collections.xmind
-
Python——基于OpenCV的人脸数据、训练、识别.zip
-
2021-01-17
-
转行做IT-第2章 HTML入门及高级应用
-
自动驾驶多传感器融合标定方法汇总
-
【数据分析-随到随学】量化交易策略模型
-
System.out.println(tickets--);
-
西安航空学院软工毕业实训
-
Git常用命令
-
设置PreferenceFragment主题
-
HZ视频配音配字幕工具v1.0版本一键配音配字幕.zip
-
ObjectARX中文版.chm
-
【数据分析-随到随学】互联网行业业务指标及行业数
-
Visual Assist X 10.9 Build 2341.2 特别版
-
2012年水资源公报.doc