avalon1.2 带来了许多新特性,让开发更轻松!详见如下:
- 升级路由系统与分页组件。
- 对ms-duplex的绑定值进行增强,以前只能prop或prop.prop2,现在可以prop["xxx"]、prop[prop2]。换言之,添加对数组法对子属性的支持。详见这里
- ms-duplex支持用JS修改input.value触发oninput事件(实现旧式IE下onpropertychange的功能),实现大量第三方组件都会操作input.value,有了这功能,我们就不需要写额外回调实现对VM对应属性的同步,从而加强与第三方组件的整合能力。详见这里与这里
- 让ms-repeat, ms-with在目标都是对象的情况下支持data-with-sorted回调。详见这里
- 添加data-widget-defined回调,this指向绑定元素,参数为新生成的VM对象。详见这里
- avalon在移除ms-controller, ms-important绑定的同时,现在会移除与其同名的类名,这是为了兼容IE6。(关于网速慢,{{}}插值表达式暴露出来的问题, 我们可以定义这样一个样式规则进行处理[ms-controller],[ms-important]{display:none} 为有点类于angularjs的ng-cloak指令,在扫描之前起着羞丑布的作用。对于IE6不支持属性选择器的问题,只能手动处理,或使用ms-text来代替{{}},这视你的用户群体决定了——avalon最佳实践)
- 重构parseExpr内部方法。
- 重构AMD加载器获取相对于父路径的逻辑。这里
- 重构parseData内部方法。详见这里
- avalon.require.text模块尝试使用HTML Imports技术加载子页面与模板文件。详见这里
- fix ms-if 当第一次没有定义某属性进行隐藏后,然后再替换整个对象,让它拥有此属性时,注释节点重复生成引发的BUG。 详见这里
- fix nextTick在IE6下崩溃的BUG。详见这里
- fix DOMReady在移动端如果网速过慢,不会触发的BUG。详见这里
- 移除为input添加name的特性。因为浏览器会提交拥有name属性并且没有定义disabled属性的表单元素。私自为它添加name,会打破用户原来的意图。详见这里
迷你MVVM框架在github的仓库https://github.com/RubyLouvre/avalon
官网地址http://rubylouvre.github.io/mvvm/
有关avalon的最佳实践或注意点请看这里, 这个我每次发布新版本都可能在这里加东西
朋友们用avalon做的东西
- 移动应用:读酷
- chrome插件:饭否客户端
- 为知笔记
- 金山WPS office 会员中心
- 桑夏资产官网
- 企业级应用:超博CRM客户关系管理系统(帐号:crm_ceo 密码:nncb_ceo)
- uliweb Python框架与avalon的组合示例
- avalon+jQuery实现域名注册查询
- 路由器示例
- 边锋活动页
- 记者考试题
如果您觉得这文章对您有帮助,可以打赏点钱给我,鼓励我继续写博,我的支付宝