jQuery的实质:我们在使用什么?

发表时间: 2016-06-25 09:08

在MV*(MVVM)框架诞生之前,我们怎么用jQuery?其实这个问题很大,一千个读者就有一千个哈姆雷特,不同阶段的开发者对jQuery的理解,或是JavaScript的理解程度是不同的。刚入门的前端开发者,可能喜欢直接操作DOM,所有会 $() 满天飞,似乎懂CSS就懂jQuery选择器了。.hide()、.show()、.css()、.attr()、.html()会用的很频繁,.fadeIn()、.fadeOut()、.slideDown()、.slideUp()也经常用来玩一些动画。不过话说回来,jQuery确实擅长干这些。一开始会觉得,哇塞,这么爽,终于可以做交互页面了,要哪个DOM,我都能轻松的获取到。

再后面,交互变得频繁,而直接操作DOM会耗大量时间来写一堆重复的业务逻辑代码,这时便有了前端模板,比如doT、artTemplate开发者只用维护数据即可,然后交给模板去处理,用事件委托来监听事件。这种模式也成了主流,至今很多项目也仍然使用的这种模式。它的好处就是前后端都可以用,而且不用直接操作DOM,省去了大量业务逻辑代码,维护起来也很方便,性能也不差。

在使用Vue时,我们怎么用jQuery?

我使用Vue.js不是很久,但却非常喜欢这个前端框架,它相比Angular使用更简单,渲染更高效,文档详细,门槛很低。在最初开发TalkingCoder时,我是没有使用jQuery的,我用原生自己封装了ajax和document.ready,一开始没有任何问题,因为不涉及到直接操作DOM。后来不得不使用jQuery插件时,开始想用Zepto代替jQuery,然后将插件改写为兼容Zepto的,因为Vue是一个新兴项目,它的组件还不是非常多,但又不想花太多时间造轮子,所以就妥协了。再后来使用Simditor富文本编辑器时,实在没办法,又将Zepto替换为jQuery了。

总结

至于React,笔者研究的并不多,所以不知道相关的情况。但就Angular和Vue的使用来看,jQuery虽还在用,但其作用已经很小了,甚至完全可以被取代,如果非要使用,Zepto也是可以替代jQuery的。前端最近几年发展的很快,各种框架层出不穷,jQuery已经慢慢不再是主流了,它的模式也在被各种新思想颠覆着。所以回到问题,我们在使用jQuery的时候,到底在使用什么?其实答案很简单,我们为什么用jQuery,因为它过去成为了前端开发的标准,不用它行不行,当然行,但你不还得自己搞一套类jQuery的东西吗,总不能所有都document.getElementById吧!所以最后还是会回到那个问题来:用什么框架,什么技术栈取决于你当前的团队实力和项目,没有谁好谁不好,只有谁合适当前,还有,任何一个框架的产生,都是为了解决某个具体问题的,不能一棍子打死说某个框架不好,也许只是不适合当前的你!

阅读1

赞投诉