smartJQ基于 jQuery 的重构压缩库
什么是 smartJQ?
smartJQ 是 jQuery 的重构压缩版,在 jQuery API 的模型上,黑盒情况下制作的库;
兼容所有现代化的浏览器,因为不需要像 jQuery 一样对旧版本浏览器(IE10之前)兼容,所以体积小很多;
相对 zepto 的优势
我们通常会使用 zepto 来代替 jQuery 做移动开发,因为zepto体积更精简;但是 zepto 相对 jQuery 有很多的不足;
特有的选择器的缺乏(:eq :odd :last 等等)
事件和数据机制存在缺陷(api和 jQuery 有一定出入,例如clone没有提供深克隆等)
缺乏 animate 方法(某些场景不能用 css3 animation 替代,例如滚动动画等)
插曲:作者本是想基于 jQuery 开发某个框架(不考虑ie的框架),但是 jQuery 太大,和在一起的大小超出预期;而 zepto 和 JSLite 的很多API存在缺陷,于是才有 smartJQ。
而 smartJQ 补充了上面的缺陷。
体积对比
smartJQ 的定位
smartJQ 的定位是 zepto 的替代品,和 zepto 是竞争关系,smartJQ 有的 zepto 不一定有,zepto 有的 smartJQ 做的比它更好;
smartJQ 和 jQuery 是互补关系;smartJQ 解决了 jQuery 的文件太大的问题,jQuery弥补了兼容性问题。
如果想要研究 jQuery 原理,可以来看看 smartJQ 源代码,没有兼容代码的累赘,相对代码量更少,核心代码少,灵活,通俗易懂;
smartJQ 的生成实例,是通过扩展 Array.prototype 达到 类jQuery 的实例化的效果,所以 smartJQ 生成的对象不仅能使用jQuery API提供的方法,也能使用Array原生提供的方法。(考虑兼容性还是不要当成Array类型使用)
smartJQ 兼容 IE10 及以上(Edge)。