最近在学习博客园r01cn 的ASP.NET WebAPI系列文章时(http://www.cnblogs.com/r01cn/tag/ASP.NET%20Web%20API/),发现有一篇文章用到了knockout.js. knockout似乎已经包含在MS MVC4的安装包里了,可见其强大和通用性。
knockout.js是MVVM模式的一种实现,类似于two-way的绑定模式,即model层改变了,UI层跟着改变,反之也一样。
knockout.js用纯js编写,可以很好的与其他js插件一同使用,比如jquery,jqueryUI等等。个人感觉可以省去很多你写dom事件触发的代码,也不用在dom中traverse去数一个总量等等
knockout有三个特性:
1.Observables and dependency tracking
2.Declarative bindings
3.Templating
其核心就是observable
,其实它就是个js中的function,类似于get/set属性,只是IE不支持,所有用function实现了。内部的话估计是采用观察者模式吧(有待进一步研究)。
推荐一个在线教程http://learn.knockoutjs.com/#/?tutorial=intro 里面总共有5个课程,有一定的jquery的基础,可能学起来快点,我jquery平时项目里没机会用,所以学的时候都要查api。
现在互联网发展真快,js框架都已经这么多了,接下去的路不好走啊。。。