迷你MVVM框架 avalonjs 1.3.7发布

又到每个月的15号了,现在 avalon 已经固定在每个月的15号发布新版本。这次发布又带来许多新特性,让大家写码更加轻松,借助于“操作数据即操作DOM”的核心理念与双向绑定机制,现在越来越多人加入到 avalon 的阵营中来。此外,基于avalon的UI库 OniUI 也越来越强大,很快, 树组件 也开发完毕,下星期也与大家见面了。到时, OniUI 也有两个Grid组件,一个树组件的完整UI库。与本次发布的UI还有验证组件,mask组件,百叶窗切换组件……

UI库的广告就到时为止,我们看一下新版本带来的新特性与FIX BUG情况吧。

  • 【新特征】ms-duplex绑定全面升级,脱胎换骨,如avalon.duplexHooks钩子对象,pipe内部方法。 详看这里的例子 。
  • 【新特征】添加data-include-replace辅助指令 详见这里
  • 【新特征】data-duplex-changed支持第二个参数data 详见这里
  • 【新特征】VM的$fire通信机制变成这个样式, all!xxx是不依赖于DOM树向周边VM发出通知; up!xxx与down!xxx是依赖于DOM向上方或向下方的VM发出通知,我们可以return false中止广播; 普通的xxx只能触发当前的VM的$watch回调。
  • 【新特征】添加avalon.scanCallback,允许在某次扫描后触发这些回调。 详见这里与 这里的例子
    avalon.scanCallback = function(fn, group) {
      group = group || "$all"
      var array = scanObject[group] || (scanObject[group] = [])
      array.push(fn)
        }
        avalon.scan = function(elem, vmodel, group) {
      elem = elem || root
      group = group || "$all"
      //.....略
        }
  • 【优化】修正 $fire在跨模块通信时无法通知widget组件的BUG(添加了createSinalTower内部方法)
  • 【优化】更改innerRequire内部方法的位置,及设置为空函数,方便用户移除“AMD加载器模块”后也能正常使用
  • 【优化】精简IE6-8下input事件的模拟
  • 【优化】精简 newSetter的逻辑 详见这里
  • 【优化】fix HTMLInputElement.prototype.value 的重写
  • 【优化】重构notifySubscribers
  • 【优化】fix getEachProxy BUG 详见这里
  • 【优化】支持生成更多SVG元素
  • 【优化】为对付firefox插件下严格的语法检测,使用全新的获取全局变量window的方法
  • 【优化】修正 ms-src不能加载SWF BUG 详见这里
  • 【优化】修正ms-duplex 绑定VM某个子VM的属性,input值修改后没有同步到vm.$model的BUG 详见这里
  • 【优化】修正avalon.mix方法拷贝VBScript对象时抛错的BUG 详见这里
  • 【优化】修正IE6下因为for in循环导致isPlainObject不准的BUG 详见这里
  • 【优化】将ms-if去掉的元素都移动head标签的avalon标签下 详见这里
  • 【优化】让date过滤器能像chrome那样支持更多日期格式 详见这里

本次升级主打的是ms-duplex 2.0,大家可以到 这里 一窥其强大!ms-duplex2.0相对于旧的ms-duplex只能将element.value简单地同步到VM中,它添加了自动转换类型的功能(核心库),光标引导(avalon.mask),数据格式化(参看avalon.mask的第三个例子,将用户输入内容自动插入千分符),验证机制(avalon.validation)。

第二大新特性就添加了avalon.scanCallback这新方法,允许用户在扫描后进行操作。有了这东西,什么data-include-rendered, data-repeat-rendered, data-with-rendered就没有存在的必要了。以后它们内部全部用avalon.scanCallback实现。

从1.3.3起,我就着手开发静态收集依赖机制,以此为契机,发现许多要改良的地方,全部放到一个叫avalon.$events.js的版本上。但经过几个月的研究,发现静态收集依赖,是对压缩不友好的,像angular那样需要引入许多奇异的方式来规避这问题。因此我最终放弃这东西,以后改用其他方式提高性能。未来将着力升级三柱臣与avalon.observe.js。

三柱臣,动画mmAnimate,数据请求mmRequest,路由器mmRouter,现在就mmRequest最成熟,而mmRouter的需求则强烈,mmAnimate极需升级。它们三个都依赖了mmPromise,那是原生的Promise的一个包装,性能超好。

在chrome36 beta中,就已经存在element.animate这个方法,即引进了著名的web-animation。chrome39将进一步完善。新的mmAnimate也将基于它进行开发。

迷你MVVM框架在github的仓库 https://github.com/RubyLouvre/avalon

avalon的新UI库地址 OniUI , 多达42个UI,强大的换肤功能

朋友们用avalon做的东西

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值