smartJQ - 基于 jQuery 的重构压缩库


MIT
跨平台
JavaScript

软件简介

什么是 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)。