smartJQ基于 jQuery 的重構壓縮庫
什么是 smartJQ?
smartJQ 是 jQuery 的重構壓縮版,在 jQuery API 的模型上,黑盒情況下制作的庫;
兼容所有現代化的瀏覽器,因為不需要像 jQuery 一樣對舊版本瀏覽器(IE10之前)兼容,所以體積小很多;
相對 zepto 的優(yōu)勢
我們通常會使用 zepto 來代替 jQuery 做移動開發(fā),因為zepto體積更精簡;但是 zepto 相對 jQuery 有很多的不足;
特有的選擇器的缺乏(:eq :odd :last 等等)
事件和數據機制存在缺陷(api和 jQuery 有一定出入,例如clone沒有提供深克隆等)
缺乏 animate 方法(某些場景不能用 css3 animation 替代,例如滾動動畫等)
插曲:作者本是想基于 jQuery 開發(fā)某個框架(不考慮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)。
