开源框架knot.js正式发布了,为前端开发带来全新的开发方式--CBS

Hi,我是knot.js的作者,一个沉溺于编程近20年至今依旧乐此不疲的程序员。我的微博是 http://www.weibo.com/2018493034/profile,如果有什么问题,欢迎到微博上和我讨论。

knot.js 这个项目其实两年前就已经开始并且成型了,它的第一个版本实际上已经被我应用到自己的项目中已经一年有余,效果很不错。不过由于一直忙于工作和小孩,再加上拖延症爆发,直到现在才将这个项目彻底重构完成,并架设了网站和撰写了详细的文档。

knot.js 英文官方网站在这里:http://www.knotjs.com   很遗憾中文网站还未能有精力完成,如果你有意加入我帮助建设中文网站,请email knotjs@gmail.com

在中文网站建立之前,我会在这里用一系列博客向大家介绍knot.js。

Knot.js并不是简单的“另一个”前端MVVM框架。 比较AngularJS,KnockoutJS等前辈,knot.js有很多创新和突破,下面我简单介绍下knot.js的几大优势:

CBS

CBS是一种全新的前端开发方式。它的名字来自于“Cascading Binding Sheet”, 看起来是不是和“CSS”很像?实际上它的工作方式也和CSS非常相似,熟悉CCS的你几乎不需要多少额外的成本就能学会。

就像CSS把样式从HTML中提取出来使得网页的可维护性得以大幅提高, CBS把混杂在HTML中的数据绑定逻辑提取出来,形成独立的,结构化的CBS块或者CBS文件,让你的HTML和数据绑定逻辑清爽易读。

下图左边是AngularJS的数据绑定配置实例片段,右边是同样功能的CBS化之后的knot.js配置实例片段,knot.js明显清爽很多。

随着项目的变大和变复杂,CBS带来的优势将会十分显著。事实上去年让我冒险将完全不成熟的knot.js应用于项目的主要原因就是我实在无法抵挡CBS
带来的诱惑。 相信你只要尝试一下CBS也会有类似的感受。

自动数据感知

Knot.js的另一项特色是数据自动感知功能。
传统MVVM框架为了实现数据感知(侦测数据变化以修改UI),往往逼迫用户按它的要求和规范编写model/view
model,你所熟悉的一切在框架里都变了,甚至一个简单的计时器都得重新学习,全程学习曲线均相当陡峭。

Knot.js则几乎不对你的model/view model做任何要求,哪怕是一个直白的json对象,knot.js也能自动建立双向绑定。你以前所有的知识在knot.js中都有效,只需通过简单地熟悉下Knot.js中寥寥的几个概念,你就能迅速上手。

下图左边是AngularJS的代码片段,右边是使用Knot.js后的代码片段。你应该能发现Knot.js的代码和你平时写的js代码几乎没什么不同。

调试器

相信任何一个用过框架的程序猿都有过和框架搏斗的痛苦经历。一个小小的配置错误,就能杀掉你一个下午的时间。
Knot.js希望改变这个现状。所以我模仿了常见的CSS调试器开发了knot.js
CBS调试器,使你能够实时监控整个系统内各个HTML元素上的绑定状态。knot.js调试器甚至还提供了CSS调试器常见的鼠标选取元素/元素高亮功
能,让你轻易定位自己想要监控的HTML元素。

knot.js调试器基本上把整个系统变成了一个白盒系统,所有的工作细节均能一览无遗。你开发过程中的绝大多数问题都能通过调试器解决。

Knot.js还有这些优点

  1. 文件很小。压缩后不过45k(不含debugger)。
  2. 快速。根据我的初步测试,knot.js仅略慢于直接使用jQuery操作DOM Tree,快过AngularJS。http://www.knotjs.com/performance/
  3. Knot.js功能齐全。虽然文件微小,但这是因为整个系统设计颇为简洁。你需要的各种功能基本上knot.js都已经提供。
  4. 自由。knot.js在整个设计过程中十分注意程序员对系统的控制性。你几乎可以在任何一个步骤介入,增加自己想要的逻辑。使用这个框架,你不会比直接使用jQuery多感受到多少限制。
  5. 免费。基于MIT License。

一些提示

  1. Knot.js 支持所有的主流浏览器,但不支持ie8及更早版本
  2. 这是Knot.js的第一个正式发布版本
  3. 虽然我会持续发表博客介绍Knot.js的方方面面,但在中文网站建立起来之前,你可能需要阅读英文文档获得帮助。

一个例子

下面是一个简单的例子,以期给你一个初步的直观感受。 这个例子显示一个文本框,输入姓名,就能得到来自knot.js的问候。你可以访问knot.js主页试用: http://www.knotjs.com

你可以立即访问 http://www.knotjs.com/tutorial/ 开始学习使用knot.js。

HTML


  1. <div class="knot_example"> 
  2.  
  3.     <!-- 清晰干净的HTML,维护便利 --> 
  4.  
  5.     <h3>Greeting from knot.js</h3> 
  6.     <p> 
  7.         <label>Input your name here: </label> 
  8.         <input type="text"> 
  9.     </p> 
  10.     <p> 
  11.         <b id="helloString"></b> 
  12.     </p> 
  13. </div> 

CBS


  1. /* 
  2.     这段CBS吧文本框的value属性绑定到#helloString的text属性 
  3.     文本框的输出将被加上"Hello" 再输出到 #helloString.text 
  4.     "[immediately:1]" 这个选项告诉knot.js每一次击键都要更新数据。 
  5.  */ 
  6. .knot_example input{ 
  7.     value[immediately:1] > {return value? ("Hello " + value + " !"): ""} 
  8.         : #helloString.text; 

如果你对knot.js感兴趣,请关注我以获取后续更新提醒。同时请点击推荐此文,knot.js需要足够的注意力来吸引开发者和建立自己的社区。

knot.js感谢你的支持。


作者:knot.js

来源:51CTO

时间: 2024-11-08 23:29:28

开源框架knot.js正式发布了,为前端开发带来全新的开发方式--CBS的相关文章

介绍Ext JS 4 MVC给Web开发带来的变化

文章最后将与大家一起讨论作者在运用过程中碰到的问题以及解决办法,并提出 MVC 需要进一步完善的地方. Ext JS 4 目前是 Sencha 的产品,4.x 的正式版本号是 4.0.7.Ext JS 4 提供商业版本,但如果您的项目是开源的,则可以http://www.aliyun.com/zixun/aggregation/17944.html">免费使用 Ext JS 4.Ext JS 的论坛目前非常活跃:Ext JS 还在不但地升级改进,据 Sencha 官方统计,使用 Ext J

开源框架思索-----一篇醍醐灌顶的好文章

本文源于IT168 作者 陈雄华 http://tech.it168.com/o/2006-12-13/200612131101722.shtml 1 空前繁荣的开源世界 大致2000年以前,Java世界还是Sun一言九鼎,唯我独尊的时代.Sun发布的任何规范和标准都无一例外地被Java社区有意无意的追捧着,Java世界沉浸在一片歌功颂德,前拥后簇的氛围里.IBM,Bea,Oracle这些Java阵营的代表者也都为能最先最快实现Sun的各种规范而弹冠相庆. 但这三四年来,Java的列车驶进了春秋

编程-关于jeecms开源框架的问题

问题描述 关于jeecms开源框架的问题 关于jeecms二次开发需要掌握什么编程知识,是不是只需要在后台上直接操作就好?还是得打什么代码? 解决方案 如果你要开发新的功能,那就要对源码进行开发,jeecms的框架是hibernate+spingmvc+freemarker,你可以去了解下,如果只是想开发相应的模板页面,只需要设计html页面,熟练的使用jeecms的自定义标签(去官网学)动态获取数据就行

五个值得尝试的前端开发工具

在过去的几年时间里,出现了许多全新的网页应用程序,不过,由于应用程序的功能越来越丰富,也导致了前端开发的复杂度大幅增加. 现在也有不少前端开发工具,比如Backbone和EmberJS框架都能提供稳定的App开发解决方案.同时,Javascript的应用也越来 越常广泛,而且它还能和Node.JS在后端协同工作,快速搭建易于扩展的网络应用.实际上,为了应对前端开发复杂度所带来的挑战,开发人员创建了许多工 具来简化开发流程.从测试框架,到分析工具,前端开发工具已经非常成熟了,正是得益于这些有用的工

开源的JS MVC框架 Backbone.js 1.0发布

开源的JS MVC框架 Backbone.js 1.0发布 发表于2013-03-21 09:37| 次阅读| 来源CSDN| 0 条评论| 作者张红月 http://www.aliyun.com/zixun/aggregation/33906.html">JavaScript框架开源Backbone.js 摘要:Backbone.js提供了一套Web开发的框架,通过Model进行key-value绑定及custom事件处理,通过 Collections提供一套 丰富的API用于枚举功能,

《Web前端开发最佳实践》——2.3 合理使用前端框架

2.3 合理使用前端框架 JavaScript本身是一种很强大的脚本语言,但是JavaScript固有的灵活性和由于使用多浏览器而产生的复杂性,在使用时并不能得心应手.此种状况下,JavaScript框架的重要性就显现出来了.JavaScript框架是JavaScript代码的工具集和函数集,一般包括DOM元素操作.DOM事件的封装.AJAX操作.UI控件封装以及一些功能算法的扩展等,如string.array等的功能扩展.好的JavaScript框架已经经过了大量的功能测试.性能测试,也经过了

NodeJS几个值得学习的开源框架

1.Primus Primus,是Transformer的创造者,并且也被称为通用包装器实时框架.Primus里包含了大量的用于Node.js的实时框架,并 且它们都拥有各种不同的实时功能.此外,Primus还提供了通用的低级别接口用于各个实时框架之间进行通信.Primus开源,并且托管在Github上. 2.Geddy Geddy是一个非常简单的基于Node.js的结构化MVC框架.你可以使用它快速的构建Web应用和JSON API.如果你使用过Ruby on Rails或者PHP的codel

web前端开发用户体验:jQuery框架

对于web前端开发来说,越来越多人使用JS框架来实现效果,其中以jQuery框架的使用最普遍.本文中对于jQuery的讨论来自Karl Swedberg的访谈,作为 JavaScript 和 jQuery 技术专家,Karl Swedberg撰写了大量相关文章,并在各种 Web 开发设计大会上有与 jQuery 相关的讲座. 对那些可能还没听说过 jQuery 的设计师来说,什么是 jQuery jQuery 是一种让开发和设计者在他们的网页中添加交互内容的工具,它的核心命令让你在网页中定位或创

10个顶级的CSS UI开源框架

随着CSS3和HTML5的流行,我们的WEB页面不仅需要更人性化的设计理念,而且需要更酷的页面特效和用户体验.作为开发者,我们需要了解一些 宝贵的CSS UI开源框架资源,它们可以帮助我们更快更好地实现一些现代化的界面,包括一些移动设备的网页界面风格设计.本文分享了10个顶级的CSS UI开源框架,有几个确实不错,一起来看看. 1.Bootstrap – 最流行的Web前端UI框架 Bootstrap是由twitter推出的Web前端UI框架,它由Twitter的设计师Mark Otto和Jac