Knockout 是什么?
翻译:Knockout 轻松上手 - 1 Knockout 是什么?
原文名称:KnockoutJS Starter
Knockout 是一个非常棒的脚本库,可是我发现许多人并不了解它,所以,思胜翻译了这本著作。
这一节,我们将会讨论 Knockout 可以做什么,又如何使用它的功能。
Knockout 是一个 JavaScript 脚本库
Knockout ,从本质上讲,是一个 JavaScript 脚本库,可以用在网站或者网页的开发中。用来增强脚本的功能以便提供更好的客户体验。默认情况下,除非你调用 Knockout ,否则它什么都不会做。这是区别其他的脚本库或者框架很重要的一点。你可以从这里下载它。
Knockout 是一个 MVVM ( Model-View-ViewModel ) 库
创建 Knockout 的一个重要原因是在 Web 开发中可以应用 MVVM 模式。MVVM 是一种与面向对象不同的开发方式,通过将界面的逻辑与业务逻辑进行分离,达到可测试的目的。
有很多的原因值得我们写可测试的代码 ( 这可以用整本的书来讲 ),但是最重要的原因是代码的可维护性和质量的保证。写可测试的代码,代码会变得更加容易维护。不管怎么说,使用 MVVM 模式创建 Javascript 程序,比直接使用 DOM 的事件来编写程序,要花费更短的时间。
上面的图表说明了使用 MVVM 进行开发的基本组件及其通讯的关系。你可以看到 View,Model,ViewModel 表示为一个个的块。第一个要注意的是 Model,Model 是一个对象,通常直接表示现实中的业务逻辑。它会包含对应业务逻辑的的属性和方法。如果你使用 Model 来表示一个汽车,那么可能如下属性:
- 最大速度
- 轮胎数量
- 制造商
同时,还有一些功能:
- 鸣笛
- 前进
MVVM 中的第二个特性是 View, View 由 HTML 标记,布局,元素,颜色,以及其他的可视的界面元素组成。它里面没有逻辑和代码,完全使用定义进行说明 ( 所有的说明都使用纯粹的 HTML 完成 )。
MVVC 的第三个部分是 ViewModel,ViewModel 提供了 View 和 Model 之间的连接。如果你设计一个 ViewModel 来表示多辆汽车,它的属性可能如下:
- 汽车集合 ( Array )
- 当前的汽车 ( Object )
方法
- 添加汽车
- 对汽车排序
ViewModel 允许你将业务逻辑在 Model 中实现,而在 ViewModel 中实现界面的控制逻辑。用术语来说就是“分离方面”,这对于大型的 Web 应用开发来说很重要。
最后一个 MVVM 的特性称为 Binding 绑定。Binding 是连接用户界面的属性,事件到 ViewModel 的属性,方法的理想途径。关于绑定的一个例子可以是界面的一个按钮,通过点击它来调用 ViewModel 的 AddAutoMobile 函数,或者将界面上的多个按钮连接到 AddAutoMobile 函数上。
在 MVVM 中,类似于 View 一般使用定义式的语法进行说明,Binding 也在视图中通过定义进行说明,Knockout 也不例外,而且大量使用 HTML5 兼容的 data-bind 属性进行绑定说明。
坚实又优美的 MVVM 库,比如 Knockout 可以使你关注在应用的业务逻辑和核心功能上,而不是把时间花费在事件的注册,取消注册上,在数据发生变化的时候更新输入框的值这些细碎的问题上。
这是一个非常棒的视频,即使你听不懂英语,也一样可以通过它学会使用 Knockout。
Knockout 是什么?的更多相关文章
- bootstrap + requireJS+ director+ knockout + web API = 一个时髦的单页程序
也许单页程序(Single Page Application)并不是什么时髦的玩意,像Gmail在很早之前就已经在使用这种模式.通常的说法是它通过避免页面刷新大大提高了网站的响应性,像操作桌面应用程序 ...
- 【Knockout.js 学习体验之旅】(3)模板绑定
本文是[Knockout.js 学习体验之旅]系列文章的第3篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...
- 【Knockout.js 学习体验之旅】(2)花式捆绑
本文是[Knockout.js 学习体验之旅]系列文章的第2篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...
- 【Knockout.js 学习体验之旅】(1)ko初体验
前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...
- MVVM大比拼之knockout.js源码精析
简介 本文主要对源码和内部机制做较深如的分析,基础部分请参阅官网文档. knockout.js (以下简称 ko )是最早将 MVVM 引入到前端的重要功臣之一.目前版本已更新到 3 .相比同类主要有 ...
- knockout+echarts实现图表展示
一.需要学习的知识 knockout, require, director, echarts, jquery.简单的入一下门,网上的资料很多,最直接就是进官网校习. 二.效果展示 三.require的 ...
- MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js、Vue.js 概念摘录
注:文章内容都是摘录性文字,自己阅读的一些笔记,方便日后查看. MVC MVC(Model-View-Controller),M 是指业务模型,V 是指用户界面,C 则是控制器,使用 MVC 的目的是 ...
- 【原】Bootstrap+Knockout.JS+ASP.Net MVC3+PetaPOCO实现CRUD操作
1.需求: 1.1)页面要美观大气 1.2)前端代码要简洁清晰,要用MVC或是MVVM框架 1.3)服务端要用MVC框架,要Rest风格 1.4)数据访问要用ORM 2.效果: 2.1)列表 2.2) ...
- EasyUI+Knockout实现经典表单的查看、编辑
此文章是基于 1. 搭建SpringMVC+Spring+Hibernate平台 2. 自制xml实现SQL动态参数配置 3. 利用DetachedCriteria构建HQL参数动态匹配 4. 常用日 ...
- knockout学习笔记目录
关于knockout学习系列的文章已经写完,这里主要是做个总结,并且将目录罗列出来,方便查看.欢迎各位大神拍砖和讨论. 总结 kncokout是一个轻量级的UI类库,通过MVVM模式使前端的UI简单话 ...
随机推荐
- 使用 CodeIgniter 框架快速开发 PHP 应用(二)
原文:使用 CodeIgniter 框架快速开发 PHP 应用(二) 二分钟: 建立一个 CodeIgniter 网站用CI建一个网站很容易. 这一章很短,解释了用CI制作网站时发生了些什么,哪些文件 ...
- boadWorld Mark!
2014-11-21 xiazaiba.com>jiaocheng>972.html
- IE打印的参数配置说明
IE自动给我们在页眉和页脚处加上了这些不必要的打印信息.如果我们不想要任何页眉和页脚的话,直接删除它们就行了.:-)大部分时候我都是这样做的.但如果你想自定义页眉和页脚的时候,该怎么做呢?上面的那些“ ...
- js中,(function(){})()的用法解析
(function($){...})(jQuery) 含义 经常用,今天总结一下,下文摘自某网友的总结: (function($){...})(jQuery)实际上是匿名函数,不懂得朋友可以继续往下 ...
- T4模版引擎之基础入门
额,T4好陌生的名字,和NuGet一样很悲催,不为世人所熟知,却又在背后默默无闻的奉献着,直到现在我们项目组的人除了我之外,其它人还是对其豪无兴趣,基本上是连看一眼都懒得看,可怜的娃啊... T4(T ...
- java-新浪微博开放平台——话题跟踪
代码 网盘地址:http://pan.baidu.com/s/1pJ1D0Kz
- Android学习----异常(2):Please ensure that adb is correctly located at ' ... '
打开任务管理器,在后台进程中找到 kadb,结束这个进程,重新启动eclipse.
- 【C++实现】HeadFirst策略模式设计模式
策略模式定义了算法家族.分别封装起来.让它们之间能够相互替换,此模式让算法的变化独立于使用算法的客户. Head First设计模式中介绍策略模式时以Duck类作为样例.当中用flyBehavior和 ...
- 选择29部分有用jQuery应用程序插件(免费点数下载)
免积分下载:http://download.csdn.net/detail/yangwei19680827/7238711 原文地址:http://www.cnblogs.com/sxwgf/p/36 ...
- SP服务商收益究竟有多大?
揭秘spspsp服务商怎样盈利?代办sp服务商又称持增值电信----移动网信息服务许可证信息提供商,sp主要业务有短信彩信(手机报.短信群发.客服系统).WAP.彩铃.IVR.百宝箱.JAVA游戏.B ...