Avalon 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Avalon 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Avalon 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 MIT
操作系统 跨平台
软件类型 开源软件
所属分类 Web应用开发Web框架
开源组织
地区 国产
投 递 者 qinerg_弓勤
适用人群 未知
收录时间 2013-07-18

软件简介

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

与其它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友好。

  • 源码也是它们中最易读的。简单的代码也意味着扩展调试等容易。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(23)
发表了资讯
2017/01/05 13:56

Avalon 2.2.4 发布,迷你易用的 MVVM 框架

avalon 2.2.4 发布了。avalon是一个功能强大,体积小巧的MVVM框架。它遵循“操作数据即操作DOM”的理念,让你在代码里基本见不到一点DOM操作代码。DOM操作全部在绑定后,交给框架处理。相当后端有了ORM一样,不用你手写SQL,提高生产力!支持ie9以下的前端mvvm框架首选,用于PC页面开发是不二选择。本次更新如下: 修正IE下 orderBy BUG 更改下载Promise的提示 修复avalon.modern 在Proxy 模式下使用ms-for 循环对象时出错的BUG...

9
18
发表了资讯
2016/06/17 00:00

Avalonjs 2.0.5 发布,迷你易用的 MVVM 框架

Avalonjs 2.0.5 发布,此版本更新内容如下: 本版本最重要就是解决多次渲染的问题,这带来了性能的极大提高! ------------------- 组件里 onInit 会加载多次(延迟到diff) 修复ms-for指令有重复渲染的情况 修正css, attr在IE6-8的BUG,缘故是在diff里面对VBscript进行for in循环了 修正 insertBefore的参数个数不足BUG 改进batch处理重复渲染的问题 修正事件不断添加的问题 更多内容请看发行说明。...

14
23
发表了资讯
2015/09/21 00:00

avalonjs 1.5.2 发布,迷你 MVVM 框架

avalon经过几年以后,已成为国内一个举足轻重的框架。它提供了多种不同的版本,满足不同人群的需要。比如avalon.js支持IE6等老旧浏览器,让许多靠政府项目或对兼容性要求够高的公司也能享受MVVM的乐趣。avalon.modern.js支持IE10以上版本,优先使用新API,性能更优,体积更少。avalon.mobile.js在avalon.modern的基础提供了触屏事件的支持,满足大家在移动开发的需求。此外,它们分别存在avalon.xxx.shim版本,指无自带加载器版...

10
45
发表了资讯
2015/08/17 00:00

Avalonjs 1.4.6 发布,迷你易用的 MVVM 框架

Avalonjs 1.4.6 发布,此版本更新内容如下: 修复对flexbox的CSS属性支持 fix IE6-8 VBSCRIPT 对象的D,P属性遍历不出来的BUG fix visible BUG 去掉ms-repeat过火的优化 fix ms-html属性绑定错误生成text binding的BUG fix解决$model层次依赖丢失 公开openTag和closeTag fix ms-class BUG 重构parseExprProxy fix parser在repace方法中读取RegExp.rightContext时在世界之窗4.3浏览器 报错的BUG 更多内容请看发行说明。 avalon是一...

2
15
发表了资讯
2015/05/04 00:00

avalonjs 1.4.2 发布,迷你MVVM框架

迷你MVVM框架 avalonjs 1.4.2 发布,avalon是一个功能强大,体积小巧的MVVM框架。它遵循“操作数据即操作DOM”的理念,让你在代码里基本见不到一点DOM操作代码。DOM操作全部在绑定后,交给框架处理。相当后端有了ORM一样,不用你手写SQL,提高生产力! 新版本改进内容包括: 修正parseHTML 对非标签类型的字符串解析失败的BUG 修正监控数组push方法没有同步$last属性的BUG 更改safari5.x下contains方法的存在性检测 更改对avalo...

17
39
发表了资讯
2015/01/16 00:00

迷你 MVVM 框架 avalonjs 1.3.9 发布

本次升级,avalon改进了许多内部方法,大大提升性能,并且带来异步刷新视图的新功能。 ms-html内部不再使用异步 head元素中的avalon元素加入ms-skip指令 重构计算属性,现在超级轻量化 重构CG回收,不会每次都全部检测所有绑定对象 重构内部方法isArrayLike,更好的判定非负整数 重构number过滤器 重构widget的节点回收,去掉onTree方法 重构Collection内部工厂 重构modelFactory, 现在VM.$event.$digest开启异步刷新视图功能 ...

10
57
发表了资讯
2014/10/14 00:00

迷你 MVVM 框架 avalonjs 1.3.6 发布

本版本是一次重要的升级,考虑要介绍许多东西,也有许多东西对大家有用,也发到首页上来了。 本来是没有1.36的,先把基于静态收集依赖的1.4设计出来后,发现改动太多,为了平缓升级起见,才减少了一部分新特性,做成1.36。因此是先有1.4,才有1.36。 本版本针对公司(去哪儿网,毕竟是带薪在公司里搞这框架)的访问浏览器的占有率,加大对国产浏览器的测试。涉及浏览器有QQ浏览器, 搜狗浏览器, 猎豹浏览器, 傲游浏览器,但没...

10
31
发表了资讯
2014/07/13 00:00

迷你MVVM框架 avalonjs 1.3.2 发布

时隔一个月,avalon的新版本终于出来了,本次更新带来强大的模块间通信机制,其他就往常一样FIX BUG。 在文本绑定里,IE会对流离于DOM树外的文本节点的data属性赋值报错,需要添加一层判定 派发事件的逻辑,由DOC.createEvent("Event")必成DOC.createEvent("Events") 添加一个反XSS的过滤器sanitize 重构事件系统,暴露eventHooks对象 firefox添加对mousewheel的兼容支持 升级ms-attr-*绑定,支持更多不规则的属性与VML属性 重构...

2
34
发表了资讯
2014/02/21 00:00

迷你MVVM框架 avalonjs 1.2 发布

avalon1.2 带来了许多新特性,让开发更轻松!详见如下: 升级路由系统与分页组件。 对ms-duplex的绑定值进行增强,以前只能prop或prop.prop2,现在可以prop["xxx"]、prop[prop2]。换言之,添加对数组法对子属性的支持。详见这里 ms-duplex支持用JS修改input.value触发oninput事件(实现旧式IE下onpropertychange的功能),实现大量第三方组件都会操作input.value,有了这功能,我们就不需要写额外回调实现对VM对应属性的同步,从...

21
80
发表了资讯
2013/09/23 00:00

迷你MVVM框架 avalonjs 0.96发布

本版本主要是性能优化与 fix BUG,改进如下: 处理notifySubscribers中的BUG,它在标准浏览器不会移除那些无用的视图刷新函数。详见这里 重构modelBindling.SELECT方法中的updateView, 感谢AngularJS中文社区(278252889)中的@basecss²º¹³指正,详见这里 处理eachIterator方法中第一个locatedNode 求值,详见这里 对监控数组进行优化,现在所有监控数组都共用一套方法,大大节省内存,详见这里 抽象出registerSubscriber,消...

6
14
发表了资讯
2013/07/20 00:00

迷你MVVM框架 avalonjs 0.9发布

本版本最大的改进是引进了ms-with绑定,现在可轻松遍历对象了。 改进列表如下: 重新使用082的scanNodes方法,因为有关旧式IE下UI渲染锁死的问题已经解决了。 优化each绑定与Collection 添加CSS3 animationend事件支持 添加ms-with绑定 fix IE9-10获取option元素的value的BUG 改良 AMD加载器与jQuery这些在内部使用了全局define方法的库的兼容问题 抽象setNumber方法来处理splice,slice这两个数组方法的参数 分割Configue, AMD...

6
13
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
23 评论
382 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部