大家好,我是knot.js的作者,沉迷编程近20年的程序员并且仍然喜欢它。我的微博是http://www.weibo.com/2018493034/profile,有什么问题欢迎微博和我一起讨论。knot.js项目实际上是在两年前开始并初具规模。它的第一个版本其实已经应用到我自己的项目中一年多了,效果非常好。但是由于工作和孩子忙,再加上拖延症的爆发,直到现在项目也没有完全重构,搭建了网站,写了详细的文档。knot.js的英文官网在这里:http://www.knotjs.com可惜中文网还没建好。如果你有兴趣和我一起帮助建设中文网站,请发邮件至knotjs@gmail.com建设中文网站之前,我会在这里的一系列博客中介绍knot.js。Knot.js不仅仅是“另一个”前端MVVM框架。与AngularJS、KnockoutJS等前辈相比,knot.js有很多创新和突破。下面简单介绍一下knot.js的几个优点:CBSCBS是一种全新的前端开发方式。它的名字来源于“CascadingBindingSheet”,是不是很像“CSS”?其实它的工作方式和CSS很相似。如果您熟悉CCS,则几乎无需额外费用即可学习。就像CSS从HTML中提取样式,大大提高网页的可维护性一样,CBS提取混在HTML中的数据绑定逻辑,形成独立的、结构化的CBS块或CBS文件,让你的HTML和数据绑定逻辑干净易读。下图左侧为AngularJS数据绑定配置示例片段,右侧为CBS后相同功能的knot.js配置示例片段。knot.js显然更干净。随着项目变得越来越大和越来越复杂,CBS的优势将变得非常显着。其实,去年我冒险将完全不成熟的knot.js应用到一个项目中的主要原因是我无法抗拒CBS的诱惑。相信只要你尝试过CBS,你就会有类似的感受。自动数据感知Knot.js的另一个特点是自动数据感知功能。为了实现数据感知(检测数据变化来修改UI),传统的MVVM框架往往会强制用户根据其要求和规范编写模型/视图模型。你熟悉的一切在框架中都发生了变化,即使是一个简单的定时器你也必须重新学习,而且整个学习曲线相当陡峭。Knot.js几乎不对你的模型/视图模型做任何要求,即使是简单的json对象,knot.js也能自动建立双向绑定。你之前的所有知识在knot.js中都是有效的,你只需熟悉Knot.js中的几个概念就可以快速上手。下图左边是AngularJS的代码片段,右边是使用Knot.js后的代码片段。你应该能发现Knot.js的代码和你平时写的js代码几乎是一样的。调试者相信,凡是使用过框架的程序员,都有过与框架搏斗的惨痛经历。一个小的错误配置可能会浪费你一个下午的时间。Knot.js希望改变这种现状。所以我模仿了常见的CSS调试器,开发了knot.jsCBS调试器,可以让你实时监控整个系统中每个HTML元素的绑定状态。knot.js调试器甚至提供了CSS调试器中常见的鼠标选择/元素高亮显示功能,让您轻松定位要监控的HTML元素。knot.js调试器基本上把整个系统变成了一个白盒系统,所有工作细节一目??了然。你开发过程中的大部分问题都可以通过调试器来解决。Knot.js也有这些优点文件体积小。压缩后只有45k(不包括调试器)。快速地。根据我的初步测试,knot.js仅比直接使用jQuery操作DOMTree稍慢,但比AngularJS快。http://www.knotjs.com/performance/Knot.js功能齐全。虽然文件很小,但这是因为整个系统设计非常简单。你需要的各种功能基本上knot.js都提供了。自由的。knot.js在整个设计过程中非常注重程序员对系统的控制。您几乎可以干预任何步骤并添加您想要的逻辑。使用这个框架,你不会感觉到比直接使用jQuery更多的限制。自由的。基于麻省理工学院许可证。一些提示Knot.js支持所有主流浏览器,但不支持ie8及更早版本。这是Knot.js的第一个正式版本。虽然我会继续发布博客来介绍Knot.js的方方面面,但是在中文网站上搭建之前,您可能需要阅读英文文档以寻求帮助。一个例子下面是一个简单的例子,为了给你一个初步的直观感受。此示例显示一个文本框,输入名称,然后从knot.js获取问候语。您可以通过访问knot.js主页进行尝试:http://www.knotjs.com您现在可以通过访问http://www.knotjs.com/tutorial/开始学习使用knot.js。HTMLGreetingfromknot.js
