热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

html完整框架,wpfmvvm框架

在MVC设计中,View是唯一与用户交互的地方,或者说它是Model变化后的直观反映。在MVVM中,View被认为是主动的而非被动的。而MVVM中View是具有主动性的,因为它包括


MVM(ModelviewViewModel )是基于MVC的设计,开发人员在HTML中写入了一些绑定,只要利用一些指令绑定,就可以在保持model和viewmodel不变的情况下,实现UI设计和业务逻辑


起源


MVM这个概念是2005年微软工程师John Grossman在博客中提出的,最初在微软的WPF中使用。 直到最近几年,MVVM这个设计才通过Javascript实现,产生了许多框架,包括KnockoutJS、Kendo MVVM和Knockback.js。 这些框架的社区非常活跃。


什么是MVVM


模特


作为MV*家族的一员,MVVM的m代表模型。 模型表示我们整个webapp所需的数据模型。 典型的例子是用户信息Model,它必须包含(名称、年龄等属性)。 模型包含许多信息,但没有行为逻辑,只有数据,因此不影响浏览器显示数据的方式。


视图


我认为View这个词出现频率最高的是MVC。 在MVC设计中,View是唯一与用户交互的地方,或者是模型改变后的直观反映。 在MVVM中,View被视为主动而不是被动。 对于被动的View,它只能被“他人”(Controller )摆布,自己无法改变任何事情,比如使用Jquery操作DOM。 在MVVM中,View是主动的。 因为它包含了直接影响模型和ViewModel的数据绑定、事件和行为。 这不仅可以保持View自身的行为(展示),还可以使自身的变化与ViewModel同步。


视图模型


ViewModel可视为MVC的控制器,主要负责数转换,运用一定的业务逻辑,将模型的变化反映到View中,在View自身有变化的情况下也同步进行模型的变化。 ViewModel暴露了View所需的数据,可以认为是隐藏在View后面的好帮手,富有View一定的行动能力。 说这么多,我们先来看看knockoutjs的Demo:吧


html


first name :http://www.Sina.com /


last name :http://www.Sina.com /


Javascript


//thisisasimple * viewmodel *-Javascriptthatdefinesthedataandbehaviorofyourui


函数应用程序视图模型(


this.firstName='Bert ';


this.lastName='Bertington ';


}


//Activates knockout.js


ko.apply bindings (new app viewmodel ) );


页面效果:


First name: Bert


Last name: Bertington


ViewModel将文本命令绑定到View,并告知相应的tag可以利用ViewModel中的数据渲染DOM。 这只是ViewModel到View的单个绑定。 双向绑定需要observable对象。 稍后再解释。


好处


1.UI和逻辑的分离。


写unit测试很方便,但测量ViewModel比测量Event方便多了。


缺点


如果为Bindings编写了自定义方法,则在正好需要调试的时候,此方法可能会有点不方便。


2 .对于交互较少的webapp,MVVM稍重


3 .对于大型webapp,所有逻辑和数据都位于ViewModel中,ViewModel变得越来越复杂。


其实MVVM的缺点还有很多,但都是特定场合的特定问题。 但是,我个人认为其优点是上述两大方面。 虽然它也有很多不足和缺点,但是zydxy的webapp是中小型的,在有复杂的交互时,如果你还在Jquery上操作DOM,我建议你马上更换框架。


从使用MVVM一段时间的经验来看,我个人认为在特定的场合它确实很出色,所以我决定自己研究一下MVVM的实现原理。 基于knockoutjs,构建与其接口相同的MVVM框架(某些主要接口)。 我不要求有多优秀,而是想出手实现。 实现MVVM后,在之后的博客中介绍MVVM的模板引擎和模板引擎,请参考原文


推荐阅读
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 本文介绍了ASP.NET Core MVC的入门及基础使用教程,根据微软的文档学习,建议阅读英文文档以便更好理解,微软的工具化使用方便且开发速度快。通过vs2017新建项目,可以创建一个基础的ASP.NET网站,也可以实现动态网站开发。ASP.NET MVC框架及其工具简化了开发过程,包括建立业务的数据模型和控制器等步骤。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • MVC设计模式的介绍和演化过程
    本文介绍了MVC设计模式的基本概念和原理,以及在实际项目中的演化过程。通过分离视图、模型和控制器,实现了代码的解耦和重用,提高了项目的可维护性和可扩展性。详细讲解了分离视图、分离模型和分离控制器的具体步骤和规则,以及它们在项目中的应用。同时,还介绍了基础模型的封装和控制器的命名规则。该文章适合对MVC设计模式感兴趣的读者阅读和学习。 ... [详细]
  • 本文介绍了MVP架构模式及其在国庆技术博客中的应用。MVP架构模式是一种演变自MVC架构的新模式,其中View和Model之间的通信通过Presenter进行。相比MVC架构,MVP架构将交互逻辑放在Presenter内部,而View直接从Model中读取数据而不是通过Controller。本文还探讨了MVP架构在国庆技术博客中的具体应用。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
author-avatar
湛蓝天空jk
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有