KnockoutJS简介

一、概述

        KO是一个JavaScript库,它可以帮助你基于底层数据模型创建丰富的,能快速显示和可编辑的UI。任何时候UI的动态更新(例如用户操作或者外部数据源改变导致的变化),KO都可以将其实现得更加简单而且更容易维护。

二、总体特征

1. 优雅的依赖跟踪------当数据模型改变后自动更新UI

2. 声明式绑定-------以一种简单和显而易见的方式将UI和数据模型联系起来。通过随心所欲的嵌套绑定环境你可以构建复杂、动态的UI。

3.易扩展------通过寥寥数行代码,自定义行为作为新的声明式绑定以达到重用

其它特征


1.纯JavaScript库-能与任何服务器端或客户端技术兼容,不需要更改web主体框架

2.紧凑-压缩后大约13KB大小

3.能在任意主流浏览器中运行

4.完整的规范使得它的正确功能可以在新浏览器和平台得到验证。

KO与JQuery是竞争关系?还是协作关系?

         每个人都喜爱JQuery,相比繁琐,非一致的DOM API,KO是一个出色的替代方案。JQuery是一个出色的低层次的方式去操作web页面里的元素和事件。而KO用于解决和JQuery不同的问题。
         一旦你的UI变得复杂和拥有一些重叠的行为,如果你仅仅使用JQuery的话事情将变得困难,而且维护代价高。考虑如下例子:展示一个list,需要显示列表项个数,并且个数少于5个时,add按钮才有效。JQuery没有数据模型的概念,所以为了获取list的列表项个数,你必须从table中获取tr个数,或者特定css的div个数。个数可以在span标签里显示,所以当用户添加了一项时,你不得不去更新span的内容。你同样必须在个数大于5的时候,使add按钮无效。然后,你又可能被要求实现一个delete按钮,并且在它点击后要改变元素。

        KO怎么工作的呢?KO做起来就容易多了。它让你在复杂中游刃有余,而不必担心引入不一致。仅仅用array来展示你的列表项,然后使用一个foreach绑定,将array转换为table或一组div。每当array改变,UI也随之改变,其余的UI部分保持同步。例如,你可以声明式的绑定一个span标签来显示列表项个数:
There are <span data-bind="text: myItems().count"></span> items
这样你不必编写代码去更新span标签的内容。当array改变的时候,它会自动更新。同样的,使add按钮有效或无效仅依赖于列表项的个数,可以这样做:

<button data-bind="enable: myItems().count < 5">Add</button>

稍后,如果你需要实现delete按钮的话,你不必关注这里面的UI之间的互动,你只需要更改数据模型即可。

        总之,KO并不与JQuery竞争,也不是和JQuery一样是低级的DOM API函数库。KO提供一个完整的,高级的方式去连接数据模型和UI。KO并不依赖于JQuery,不过当然可以同时一起使用它们,并且在需要动画的时候这样做通常很有用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值