迷你简单易用的MVVM框架:Avalon

jopen 11年前

avalon是一个功能强大,体积小巧的MVVM框架。它遵循“操作数据即操作DOM”的理念,让你在代码里基本见不到一点DOM操作代码。DOM操作全部在绑定后,交给框架处理。相当后端有了ORM一样,不用你手写SQL,提高生产力!

 MVVM框架:Avalon

与其它js框架相比,同样实现著名的todos功能,(参见todomvc官网),在所有MV*的实现中avalon是让用户写代码最少的。

与其他MV*相比,它不仅轻量,最低支持到IE6,而且性能是最好的。

优势:

  • 使用简单,在HTML中添加绑定,在JS中用avalon.define定义ViewModel,再调用avalon.scan方法,它就能动了!
  • 兼容到IE6(其他mvvm框架, knockoutjs IE6, angularjs IE7, emberjs IE8, winJS IE9 )
  • 没有任何依赖,只有72K,压缩后22K
  • 支持管道符风格的过滤函数,方便格式化输出
  • 局部刷新的颗粒度已细化到一个文本节点,特性节点
  • 要操作的节点,在第一次扫描就与视图刷新函数相绑定,并缓存起来,因此没有选择器出场的余地。
  • 让DOM操作的代码近乎绝迹
  • 使用类似CSS的重叠覆盖机制,让各个ViewModel分区交替地渲染页面
  • 节点移除时,智能卸载对应的视图刷新函数,节约内存
  • 操作数据即操作DOM,对ViewModel的操作都会同步到View与Model去。

与其他框架比较:

  • 它体积更少,在主要的几个MVVM框架(拥有双向绑定机制),knockout是三千多行,angularjs 1.6万, emberjs2-3万行, winjs是几M, kendoui是几M!
  • 兼容情况,kendoui与 knockoutjs IE6, angularjs IE7, emberjs IE8, winJS IE9
  • 让用户写代码更少(可见我给出的todos)
  • 上手难度,与knockout差不多,但借鉴了angularjs的,更为易用。
  • 与knockoutjs, angular, winjs一样是使用动态模板,至少保持第一屏数据是真实的,对SEO友好。
  • 源码也是它们中最易读的。简单的代码也意味着扩展调试等容易。

项目主页:http://www.open-open.com/lib/view/home/1374369221371