Knockout是一个轻量级的js的UI类库,通过应用MVVM模式
(Model-View-ViewModel,MVP是用在某个特定页面上,WPF技术出现,使得MVP晋级成MVVM。
模式也是依次进化而形成MVC—>MVP—>MVVM。WPF就是Windows Vista的用户界面框架,
属于NET Framework 3.0的一部分。)
使JavaScript前端UI简单化。
Knockout使用js代码达到双向绑定的目的,主要就是利用相关的特性进行开发的,极大地减少了代码开发量。
它的发明者来自微软,但ko是开源的(正如boostmap的发明者来自twitter,但bootstrap不是twitter的)
基本的理念是: 数据修改后,界面会自动更新。在html的控件中使用databind属性,
用ko.applybindings(函数())来激活,并用ko.observable来传递数据。
这样就能达到数据的关联联动了。如果当需要同步的数据点很多的时候,ko的优势就会大大体现了。
不用多写代码,自动关联。据统计ko的代码量是同比的jquery的五分之一。
使用起来也很方便,只需要把Knockout.js include 到页面中就可以了
比如像进度条这样的,也是可以使用Knockout做文件上传和实际进度显示的关联的。