与多样化和复杂的前,设计模式不再是后端专有名词。从最初的面向对象的,框架制定了到现在为止mvc等一下,今天,它主要是关于Model-View-ViewModel(MVVM)。

对于mvc大家可能都会相对的非常熟悉,而mvvm预计陌生的居多。在我们web实际开发中用户的输入等行为必须通过监听窗体、文档和元素上的事件来获得而这些东西经常被觉得是View,而依照mvc模式这部分却是不应该在view层,而是Controller处理。Controller应该是View操作Model的中介,所以在web中mvc模式非常难被使用,而这时mvvm应运而生,它仅仅须要一个为view量身定制的model,这个model就是viewmodel。viewmodel包括全部由UI特定的接口和属性,并由一个viewmodel的视图的绑定属性,获得二者之间的松散耦合,同一时候在viewmodel直接更新视图中编写对应代码。

这样viewmodel具备良好的伸缩性,在小型应用中也可带来不菲的优点。

它还易于在终于的应用程序中利用開始构建的原型系统,使得异步编程变得简单,所以也成为了web应用中现在的主流框架模式,也是现在面试会问到到题目之中的一个。

看了上面大家对mvvm大致应该有了些印象,在我们实际开发中,正是因为用户界面的复杂化,用户界面在不同逻辑下包括多种状态。同一时候用户界面通常须要和业务组件协作实时的同步数据。应对这种需求mvvm也就更加的重要,它把应用程序的状态和行为进行封装,隔离了用户界面和用户的体验部分。model用来做数据訪问层,view则独立于model,而viewmodel则负责它们两者间信息的转化,同一时候对model层进行crud操作及view层提供数据绑定,这种模式也方便同样功能不同逻辑的页面模块的复用,对于后期维护也是省事了不少,并且在相信大家最常见的场景就是模块数据变化时,页面上有多块dom须要做相应的状态变化。这时用它更加能把大家从dom操作和查找中解放出来。

只是这个模式并非全部的项目都是适用的。设计模式也是要看使用场景。比方简单的UI那用它就是反而杀鸡用牛刀,照成多余的性能耗损。毕竟viewmodel和view之间的解析是不可缺少的。总之中的一个句话灵活应用合适的东西用在合适的地方给别人说的在烂的模式也是好用的。另外关于mvvm的框架大家能够看看Knockout、avalon、angular等一下。

版权声明:本文博主原创文章,博客,未经同意不得转载。

小说mvvm的更多相关文章

  1. 迷你MVVM框架 avalonjs1.5 入门教程

    avalon经过几年以后,已成为国内一个举足轻重的框架.它提供了多种不同的版本,满足不同人群的需要.比如avalon.js支持IE6等老旧浏览器,让许多靠政府项目或对兼容性要求够高的公司也能享受MVV ...

  2. JavaScript富应用MVC MVVM框架

    对框架的挑选 Ember.js.Backbone.js.Knockout.js.Spine.js.Batman.js , Angular.js 1. 轻量级的应用选择哪一个会比较好?2. 那一个比较简 ...

  3. Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)

    jquery提供的serialize方法能够实现. $("#searchForm").serialize();但是,观察输出的信息,发现serialize()方法做的是将表单中的数 ...

  4. Vue.js 和 MVVM 小细节

    MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自 ...

  5. 领域驱动和MVVM应用于UWP开发的一些思考

    领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中有了心得体会或遇到了问 ...

  6. MVVM框架从WPF移植到UWP遇到的问题和解决方法

    MVVM框架从WPF移植到UWP遇到的问题和解决方法 0x00 起因 这几天开始学习UWP了,之前有WPF经验,所以总体感觉还可以,看了一些基础概念和主题,写了几个测试程序,突然想起来了前一段时间在W ...

  7. MVVM模式解析和在WPF中的实现(六) 用依赖注入的方式配置ViewModel并注册消息

    MVVM模式解析和在WPF中的实现(六) 用依赖注入的方式配置ViewModel并注册消息 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二 ...

  8. MVVM模式解析和在WPF中的实现(五)View和ViewModel的通信

    MVVM模式解析和在WPF中的实现(五) View和ViewModel的通信 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 M ...

  9. MVVM设计模式和WPF中的实现(四)事件绑定

    MVVM设计模式和在WPF中的实现(四) 事件绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...

随机推荐

  1. malformed or corrupted AST file。。。module file out of date'

    今天打开了曾经用的一个项目,(曾经的程序是对的)弹出了两个红框 malformed or corrupted AST file...module file out of date'. 这种结构. 解决 ...

  2. SRM 219 Div II Level One: WaiterTipping,小心约分

    题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=12609&rd=15503 这题目看上去so easy, ...

  3. c/c++中main函数参数讲解

    参考地址: http://blog.csdn.net/cnctloveyu/article/details/3905720 我们经常用的main函数都是不带参数的.因此main 后的括号都是空括号.实 ...

  4. 局部权重线性回归(Locally weighted linear regression)

    在线性回归中,因为对參数个数选择的问题是在问题求解之前已经确定好的,因此參数的个数不能非常好的确定,假设參数个数过少可能拟合度不好,产生欠拟合(underfitting)问题,或者參数过多,使得函数过 ...

  5. android4.0 USB Camera示例(五个辅助)jpg压缩

    前的最后一个 我们说,一个直接yuv变成jpg该功能 但是转换不成功 主要功能是yuv420转jpg的 根据研究发现 yuv420的序列是这种 YYYY YYYY UVUV 而yuv422的隔行扫描的 ...

  6. hdu4635(最多加多少边,使得有向图不是强连通图)

    连边的最后肯定是两个集合x,yx集合的每个元素,到y集合中的每个元素都是单向的边x集合,和y集合都是完全图设a为x集合的点的个数, b为y集合的那么答案就是 a * b + a*(a-1) + b*( ...

  7. JS获得URL参数

    使用JavaScript获得URL在参数值 方法一: function getUrlParam(name) {      var reg = new RegExp("(^|&)&qu ...

  8. 在WPF中使用PlaneProjection模拟动态3D效果

    原文:在WPF中使用PlaneProjection模拟动态3D效果 虽然在WPF中也集成了3D呈现的功能,在简单的3D应用中,有时候并不需要真实光影的3D场景.毕竟使用3D引擎会消耗很多资源,有时候使 ...

  9. 在深入分析:Android在app之间的相互作用(一个,使用Action)

    我们开发Android App时间应用,有些需求,我们需要启动另一App为了应对一些逻辑.例如,我们需要映射基于地址调用系统或相关Map App,所以,我们不自己有App在相应的功能的制备.而是通过I ...

  10. 复制360于Launcher浮动窗口的屏幕显示内存使用情况(基本版)

    MainActivity如下面: package cc.cc; import android.os.Bundle; import android.view.View; import android.v ...