设为首页 收藏本站
查看: 1432|回复: 0

[经验分享] avalon1与avalon2的异同点

[复制链接]

尚未签到

发表于 2017-2-24 06:18:52 | 显示全部楼层 |阅读模式
  avalon2并不向下兼容avalon1,但许多API与指令很相似,迁移成本比较低。此外,良好的性能与强大的功能是你迁移的动力。下面是一个列表,如有提问尽管提出。
avalon1与avalon2的异同一览表
科题avalon1avalon2如何得知某个属性被改动使用VBScript,Object.defineProperty实现对=号的重写在此基础增加Proxy的魔术监听如何更新视图找到变动属性对应的订阅者数组,执行这些数组元素的update方法使用vm.$render生成虚拟DOM树,diff,从上到下有序更新计算属性支持移除,使用js指令实现相同功能绑定属性的处理扫描后删除扫描后还留着循环指令ms-repeat,ms-each,ms-withms-for循环指令的语法ms-repeat-el='array'ms-for="el in @array"如何辩别指令中的vm属性avalon自行进行语法抽取强制在前面带@或#符号垃圾回收密封舱机制,负责清空订阅者数组由于不保存绑定对象,没有CG的烦恼性能一般,但能撑起上万个指令,瓶颈取决于绑定对象的所占内存原来的5倍以上,瓶颈取决于虚拟DOM的规模最复杂的指令ms-repeatms-duplex数据验证使用oniui的validation使用内置的ms-validate,ms-duplex,ms-rules组件指令ms-widget='id,name,opts'ms-widget='Array'传入一个对象数组,用法更灵活组件生命周期onInit, onDisposeonInit, onReady, onViewChange, onDispose如何操作组件通过onInit取得组件vm进行操作直接操作配置对象如何对组件传入大片内容使用ms-html或改成模板通过slot机制加载器使用AMD风格的内置加载器移除,建议使用webpack进行打包动画ms-effect(与angular的animate更接近)ms-effect模块化源码里自由划分使用nodejs的require与module.exports组织起来important指令有有(让页面渲染更快){{}}与ms-text的关系ms-text会对内容再次扫描,不是单纯等价于{{}}完全等价if指令ms-ifms-ifattr指令ms-attr-name=valuems-attr="object" object是一个对象,方便每次处理多个属性class指令ms-class='xxx: toggle'ms-class=’Arrayvisible指令ms-visiblems-visible过滤器只能用于innerText中的{{}}及ms-text, ms-html数量琳琅满目,所有指令都支持js指令没有新增模板指令ms-include移除,由于后端无法实现等价功能事件指令普通的事件绑定能支持事件代理的都用事件代理后端渲染实现成本高昂轻松支持核心架构观察者模式 + 属性劫持大模板函数+虚拟DOM+属性劫持  其中变量名前加上@,是一个很大的区别。虽然avalon也可以通过内部 分析得到,但可能有缺失,再三考虑,决定加上这一个标识符。如果大家还记得的话,我早些年的ejs模板引擎就是使用@来标识变量的。因此许多东西都是有传承的,都是非常成熟的方案。

  往后,我会出一系列教程来介绍avalon2。avalon的优点可以自行发掘,但可以说一点的是,其兼容性,易用性,体积在市面上都是数一数二的。  avalon2托管在GITHUB上,心急的人可以先下回来研究,但记得加星啊!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-346292-1-1.html 上篇帖子: C“中断” 与 JS“异步回调” 横向对比 下篇帖子: 超详细cordova环境配置(windows)及实例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表