avalon2.1.15发布

发布于:2023-03-12 ⋅ 阅读:(85) ⋅ 点赞:(0)

这是一个FIX BUG的小版本,但也添加了三个重要的功能。即

一. xmp, wbr, template可以直接使用is属性代替ms-widget来申明组件类型。想当于把原来的is配置项提了出来。 如果还要申明其他配置项,还是需要ms-widget配置对象。

<xmp :widget="{is:'ms-button'}"></xmp> 可以简化为
<xmp is="ms-button"></xmp>

二. 普通vm也支持onDispose生命周期钩子。

avalon.ready(function(){
    avalon.define({
       $id: 'test',
       aaa: 111
    })
    vm.$watch('onReady', function(){
        //页面上每个ms-controller, ms-important元素
        //在其区域内的所有ms-*指令被扫描后会执行
    })
     //2.1.15起支持
    vm.$watch('onDispose', function(){
        delete avalon.vmodels[vm.$id)
        if(avalon.scopes){
           delete avalon.scopes[vm.$id)
        }
    })
    avalon.scan(document.body)
})

三. 添加norequire验证规则

其他就是fix BUG与重构。 在过去半个月中, 进行着 新diff重构, 策略模块重构及组件模块重构这三大任务。 步伐迈得太大就容易扯蛋。结果只完成策略模块重构这一项。此外for的parse方法,component的init方法,attr的diff方法, controller的parser方法,也在这次升级中完成。重构会让代码更高精悍易读。

修了两个BUG,一个是检测组件元素被移出DOM时的检测逻辑,另一个是IE6-8下定义VM时使用VBScript偶尔会出现的“变量已经定义”的错误。

现在avalon源码可以使用rollup来打包了,说明其模块划分已经非常合理。

代码测试覆盖率达到92%。许多覆盖不了的是IE6-8的if, else分支。

下一次升级还继续剩余的两个任命及打算引入es2015的模块定义。

大家可以直接npm install avalon2 或是到这里下载

https://github.com/RubyLouvre...