Knockout是一个轻量级的UI类库,通过应用MVVM模式使JavaScript前端UI简单化。

Knockout有如下4大重要概念:

  • 声明式绑定 (Declarative Bindings)使用简明易读的语法很容易地将模型(model)数据关联到DOM元素上。
  • UI界面自动刷新 (Automatic UI Refresh)当您的模型状态(model state)改变时,您的UI界面将自动更新。
  • 依赖跟踪 (Dependency Tracking)为转变和联合数据,在你的模型数据之间隐式建立关系。
  • 模板 (Templating)为您的模型数据快速编写复杂的可嵌套的UI。

Knockout是一个以数据模型(data model)为基础的能够帮助你创建富文本,响应显示和编辑用户界面的JavaScript类库。任何时候如果你的UI需要自动更新(比如:更新依赖于用户的行为或者外部数据源的改变),KO能够很简单的帮你实现并且很容易维护。

重要特性:

  • 优雅的依赖追踪- 不管任何时候你的数据模型更新,都会自动更新相应的内容。
  • 声明式绑定- 浅显易懂的方式将你的用户界面指定部分关联到你的数据模型上。
  • 灵活全面的模板- 使用嵌套模板可以构建复杂的动态界面。
  • 轻易可扩展- 几行代码就可以实现自定义行为作为新的声明式绑定。

额外的好处:

  • 纯JavaScript类库 – 兼容任何服务器端和客户端技术
  • 可添加到Web程序最上部 – 不需要大的架构改变
  • 简洁的 – Gzip之前大约25kb
  • 兼容任何主流浏览器 (IE 6+、Firefox 2+、Chrome、Safari、其它)
  • Comprehensive suite of specifications (采用行为驱动开发) - 意味着在新的浏览器和平台上可以很容易通过验证。

开发人员如果用过Silverlight或者WPF可能会知道KO是MVVM模式的一个例子。如果熟悉 Ruby on Rails 或其它MVC技术可能会发现它是一个带有声明式语法的MVC实时form。换句话说,你可以把KO当成通过编辑JSON数据来制作UI用户界面的一种方式… 不管它为你做什么。

knockout.js 简介的更多相关文章

  1. 【Knockout.js 学习体验之旅】(1)ko初体验

    前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...

  2. knockout.js的简介和简单使用

    1.knockout简介knockout是一个轻量级的UI类库,通过MVVM模式使JavaScript前端UI简单化knockout有四大重要概念:1)声明式绑定:使用简明移读的语法很容易地将模型(m ...

  3. Knockout.Js官网学习(简介)

    前言 最近一段时间在网上经常看到关于Knockout.js文章,于是自己就到官网看了下,不过是英文的,自己果断搞不来,借用google翻译了一下.然后刚刚发现在建立asp.net mvc4.0的应用程 ...

  4. 1.Knockout.Js(简介)

    前言 最近一段时间在网上经常看到关于Knockout.js文章,于是自己就到官网看了下,不过是英文的,自己果断搞不来,借用google翻译了一下.然后刚刚发现在建立asp.net mvc4.0的应用程 ...

  5. C#设计模式总结 C#设计模式(22)——访问者模式(Vistor Pattern) C#设计模式总结 .NET Core launch.json 简介 利用Bootstrap Paginator插件和knockout.js完成分页功能 图片在线裁剪和图片上传总结 循序渐进学.Net Core Web Api开发系列【2】:利用Swagger调试WebApi

    C#设计模式总结 一. 设计原则 使用设计模式的根本原因是适应变化,提高代码复用率,使软件更具有可维护性和可扩展性.并且,在进行设计的时候,也需要遵循以下几个原则:单一职责原则.开放封闭原则.里氏代替 ...

  6. MVVM大比拼之knockout.js源码精析

    简介 本文主要对源码和内部机制做较深如的分析,基础部分请参阅官网文档. knockout.js (以下简称 ko )是最早将 MVVM 引入到前端的重要功臣之一.目前版本已更新到 3 .相比同类主要有 ...

  7. Knockout.Js官网学习(系列)

    1.Knockout.Js官网学习(简介) 2.Knockout.Js官网学习(监控属性Observables) Knockout.Js官网学习(数组observable) 3.Knockout.Js ...

  8. Knockout.Js学习目录

    1.Knockout.Js(简介) 2.Knockout.Js(监控属性Observables) 3.Knockout.Js(属性绑定) 4.Knockout.Js(事件绑定) 5.Knockout. ...

  9. 【Knockout.js 学习体验之旅】(3)模板绑定

    本文是[Knockout.js 学习体验之旅]系列文章的第3篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...

随机推荐

  1. Python正则化学习

  2. iframe详细的使用

    谷歌火狐和ie是有区别的谷歌需要服务器,为了更安全 获取内容的时候, 正常渲染没问题获取内容var oIframe = document.getElementById('iframe'); oIfra ...

  3. CSS3图片倒影技术实现及原理

    CSS3图片倒影技术实现及原理 目前为止我们已经探讨了很多CSS3中的新功能和新特征.除了上面这些,实际上还有很多CSS新属性并未包含进CSS3官方标准中,像谷歌浏览器或火狐浏览器等都会利用CSS的浏 ...

  4. 【Duke-Image】Week_5 Segmentation

    Chapter 10 Image Segmentation 图像分割 10.2.7 Edge Linking and Boundary Detection 边缘连接和边界检测 Global proce ...

  5. js 在页面上模拟多选,蚂蚁线线框

    <html> <head></head> <style> body{padding-top:50px;padding-left:100px;paddin ...

  6. diskpart查看硬盘序列号

    WIN + R键运行cmd,进如DOS界面: 1. systeminfo查看OS初始安装时间 2. diskpart工具查看硬盘序列号 (1)diskpart (2)lisk disk 查看主机安装的 ...

  7. Oracle 11g default profile 默认启用密码过期180天 ORA-28001错误处理

    问题描述:客户反映客户端不能登录应用程序时不能连接.环境:AIX 5.3 + Oracle 11gR2解决:远程Telnet到数据库主机,sqlplus / as sysdba 连接后操作正常,表明数 ...

  8. hihocoder挑战赛26

    某蒟蒻成功的·写出了T1并rank16...小岛的题目真难... 传送门:http://hihocoder.com/contest/challenge26 T1 如果你想要暴力枚举的话显然是不行的 如 ...

  9. Spring Bean

    一.Spring的几大模块:Data access & Integration.Transcation.Instrumentation.Core Spring Container.Testin ...

  10. db2命令

    把远程的数据库信息加载到本地 第一步,catalog server端的node ,命令如下: db2 catalog tcpip node db2node remote hostname server ...