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做的东西

avalonjs 1.3.7发布的更多相关文章

  1. 迷你MVVM框架 avalonjs 1.3.7发布

    又到每个月的15号了,现在avalon已经固定在每个月的15号发布新版本.这次发布又带来许多新特性,让大家写码更加轻松,借助于"操作数据即操作DOM"的核心理念与双向绑定机制,现在 ...

  2. 迷你MVVM框架 avalonjs 1.3.4发布

    发现一个以前从来没发现的大BUG,紧急发布此版本. fix getEachProxy BUG,此BUG会导致监控数组在删除某元素然后再添加元素时出现问题. avalon ms-on-*绑定添加一个钩子 ...

  3. 迷你MVVM框架 avalonjs 1.3.2发布

    时隔一个月,avalon的新版本终于出来了,本次更新带来强大的模块间通信机制,其他就往常一样FIX BUG. 在文本绑定里,IE会对流离于DOM树外的文本节点的data属性赋值报错,需要添加一层判定 ...

  4. 迷你MVVM框架 avalonjs 1.3.1发布

    avalon1.3.1发布. interpolate支持注释节点做定界符,avalon.config({interpolate:["<!--","-->&qu ...

  5. 迷你MVVM框架 avalonjs 1.3.9发布

    本次升级,avalon改进了许多内部方法,大大提升性能,并且带来异步刷新视图的新功能. ms-html内部不再使用异步 head元素中的avalon元素加入ms-skip指令 重构计算属性,现在超级轻 ...

  6. 迷你MVVM框架 avalonjs 1.3.8发布

    avalon1.3.8主要是在ms-repeat. ms-each. ms-with等循环绑定上做重大性能优化,其次是对一些绑定了事件的指令添加了roolback,让其CG回收更顺畅. 重构ms-re ...

  7. 迷你MVVM框架 avalonjs 1.3.6发布

    本版本是一次重要的升级,考虑要介绍许多东西,也有许多东西对大家有用,也发到首页上来了. 本来是没有1.36的,先把基于静态收集依赖的1.4设计出来后,发现改动太多,为了平缓升级起见,才减少了一部分新特 ...

  8. 迷你MVVM框架 avalonjs 1.3.5发布

    本版本主要是修复内存泄漏问题,让其在移动端更好的运作. 修正visible BUG 详见这里 修正$fire方法里的正则错误 详见这里 修正ms-attr BUG,在IE9-11,直接用element ...

  9. 迷你MVVM框架 avalonjs 1.3.3发布

    大家可以在仓库中看到,多出了一个叫avalon.observe的东西,它是基于Object.observe,dataset, Promise等新API实现.其中,它也使用全新的静态收集依赖的机制,这个 ...

随机推荐

  1. 代码配置没有问题,为什么不回滚事务(要理解Mysql数据库引擎)

    在发展的前几天遇到的问题,在调试过程中发现配置service本次交易不工作层,更新后数据库抛出异常或成功,交易不会回滚.随后开始了各种检查,视图spring的事务是否配置正确,进入更新方法时是否开启了 ...

  2. SQL入门学习6-集合运算

    7-1 表的加减法 集合运算 集合运算就是对满足同一规则的记录,进行的加减等四则运算. 1.1 表的加法--UNION 表之间进行并集运算. 语法: SELECT 对应列1,对应列2-- FROM 表 ...

  3. Spring 5 (0) - Introduction & Index

    Spring Framework Reference Documentation I. Overview of Spring Framework . Getting Started with Spri ...

  4. 《神秘的程序员们》漫画26~28:《万年坑系列》 I、II、III(转)

    26 <万年坑系列> I:那些令你憎恶的系统从何而来? 世界上总有一些令人憎恶的系统,而你却天天非用不可.这些系统的提供方们既不缺钱也不缺人,有的还很热衷于改版升级. 但为何升级完后,它们 ...

  5. Facebook 网页应用图文设置教程

    最近在弄一个项目,需要使用Facebook进行登陆并且获取用户Facebook相关的数据.网上查找有关Facebook应用设置教程,中文资料中,要么介绍的是N版之前的API,要么是App端的教程.Fa ...

  6. java观察者模式(转)

    简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象.这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者对象能够自动更新. 不多说 ...

  7. AngularJS html5Mode与ASP.NET MVC路由共存

    前言 很久之前便听说AngularJS,非常酷,最近也比较火,我也在持续关注这个技术,只是没有认真投入学习.前不久公司找我们部门做一个OA系统(想省下几万大洋的费用),第一时间便想到AngularJS ...

  8. OCP读书笔记(26) - 题库(ExamF)

    501.Note the output of the following query;SQL> SELECT flashback_archieve_name, status FROM dba_f ...

  9. cocos2d0基础知识三个音符

    1.触摸屏事件: bool HelloWorld::init() { //省略的代码的最后位 this->schedule(schedule_selector(HelloWorld::usecr ...

  10. 【源代码】StringBuilder和StringBuffer震源深度分析

    //------------------------------------------------------------------------ 写篇博客不easy.请尊重作者劳动成果. 转载请注 ...