博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
avalon2.2 发布
阅读量:6470 次
发布时间:2019-06-23

本文共 992 字,大约阅读时间需要 3 分钟。

经过avalon2.0.*avalon2.1.*这30多个小版本的迭代,avalon终于实现自己一套html parser, 虚拟DOM系统与两个数组的精致diff算法,再结合mobx的一些源码阅读所得,终于催生了avalon2.2。

avalon2.2是一个里程碑的版本,模块全部使用es6 module方式,并尽可能使用es6的语法来编写。使用rollup进行打包,因此现在avalon2兼容IE6的版本只要7300行代码。avalon2现代版本(IE10+)只要6300行。avalon兼容IE6的版本,强化兼容支持,其用到的VBScript代码进一步优化,并重写所有测试。avalon现代版本,则直接允许使用Proxy实现VM。这是第一个使用Proxy做监听的MVVM框架!

  • fix IE6-8 opacity BUG

  • 减少VM的系统属性,__const__, __data__,__proxy__,$skipArray被废掉

  • vmodel模块全部重写,让它内部用到的私用方法更加合理

  • directives模块全部重写,因为现在不走react的渲染模板思路了

  • component模块全部重写,它现在是完全独立的作用域,可能与这前的有一点不兼容。不过,这对维护组件自身的状态非常有利。

  • watch不再支持*号

  • strategy模块被打散了,细分为parser与renders与vtree这三个模块。renders里面有domRender与serverRender。

  • vdom模块,虚拟DOM转真实DOM时,对低版本浏览器的支持更好。

avalon2.2最大的优点体现在以下几处:

  • 直接开启Proxy监听时代,它比Object.defineProperty更为神通广大,所需代码更少。

  • 依赖收集与依赖追踪更完美。早期没有依赖追踪,只会第一次将指令转换为视图刷新函数时确定VM属性与视图元素的依赖关系,如果里面存在三目运算符,if else时就会有些依赖没有收集到。依赖追踪保证依赖关系是最新的,当不存在依赖时,就会销耗该属性背后的一系列对象,垃圾回收。

  • 组件机制臻于完美,独立的VM,6个生命周期钩子,长驻机制。

  • 重写所有测试,基于jasmine与istanbul与karma,全部跑通IE6-11,firefox, chrome, safari与phantomjs

项目地址:

转载地址:http://okjko.baihongyu.com/

你可能感兴趣的文章
初识Scala反射
查看>>
第三十九天
查看>>
Redis详解
查看>>
论程序员加班的害处
查看>>
codeblocks快捷键
查看>>
基于HTML5的WebGL设计汉诺塔3D游戏
查看>>
WPF资料链接
查看>>
过滤DataTable表中的重复数据
查看>>
再次更新
查看>>
mysql的数据类型int、bigint、smallint 和 tinyint取值范围
查看>>
移动铁通宽带上网设置教程
查看>>
Python算法(含源代码下载)
查看>>
利用Windows自带的Certutil查看文件MD5
查看>>
查询指定名称的文件
查看>>
AJAX POST&跨域 解决方案 - CORS
查看>>
开篇,博客的申请理由
查看>>
Servlet 技术全总结 (已完成,不定期增加内容)
查看>>
[JSOI2008]星球大战starwar BZOJ1015
查看>>
centos 7 部署LDAP服务
查看>>
iOS项目分层
查看>>