为什么现在还使用jQuery?理由分析
据统计, jQuery 全球网站使用量目前依然高企。但一个不争事实 ,随着Web技术现代化,jQuery 已经被边缘化,也有不少人直接认为 jQuery 已经过时,不必再考虑使用。这部分人可能 很少用,或不用 jQuery,使不使用jQuery,还有得探讨。
首先, jQuery 在开发现代前端UI上,的确失去了曾经的优势,因为Web标准成熟化,不必过多考虑兼容一致性,DOM操作API也有了替代;另外,又出现了新技术市场(如MVVM),可以声明式的自动化UI功能的开发。
其实,是否学用一个工具(在新项目里使用),需要考虑很多因素。就jQuery而言,我认为还有学习和使用它的地方。
使用
为一个商业项目选择技术栈,都要考虑投入成本和回报比率。反对使用jQuery的人 一般是担心 它会过时,学了用不上,也怀疑它的开发效率。任何技术都会过时的,所以在可预期的项目上,技术是否过时不是考虑的首要因素 。首要考虑的是学习、开发维护成本 , 以及其回报的比率 。
每一种工具都是有学习成本 ,在使用上也有其适用性的。原生DOM,React 的学习成本并不低,也有其独特的适用范围。
- 原生DOM API作为一种标准,它一定是具有通用性的,DOM操作是比较原始
- MVVM 其实只适用于 状态更新的UI,不适用一些细微的DOM操作,例如动画,窗口操作
其实 jQuery 就是一个DOM操作的工具库,你的 原生或React项目 一定会有一些自定义 的工具库,用来提高开发效率,因为原生操作是很原始的,React 的抽象不适用所有交互功能的需求 。
用不用jQuery,要考虑项目性质,和具体开发任务。就目前而言,一些中小项目 ,数据交互功能不多的,引用 jQuery 投入回报比应该是不错的。
学习
除了使用的角度,从学习的角度,我的观点是,研习 jQuery使用和源码,对于提高 JS水平,和前端水平 依然有帮助。
Atypic 认为依然使用 jQurey 的六个理由
以下简译一下 Atypic 团队总结的 使用 jQuery的几个理由
第一,jQurey 的 DOM节点选择器比较原生的强
现在原生querySelector也是使用 CSS 选择器的,但是jQurey 在CSS标准之上更加的“高级”。所谓高级 是指针对某种 节点查询任务 更加的直接,和方便。这些部分选择器语法 并没 被 纳入CSS标准。例如:伪类 :visible
:
$('a[href^="http://"]:visible')
这个查询 是选择 所有前缀是 http://
这个不安全协议名,且可见的a
标签。
如果你有大量 这种高级查询 ,原生满足不了(必须写大量原始操作),没有jQuery,你得自己封装。
第二,jQurey 支持链式语法,可将多个DOM操作写成一句
jQurey构造函数($()
)创建并返回一个 jquery对象,这个对象实例的所有 DOM 操作方法 都会修改当前实例后返回它(新的修改过后jquery实例)注1,这样,多个 DOM操作 就可以连写在一起,这就是有名的 链式语法。例如
$('a[href^="http://"]').addClass(‘insecure').attr('target', '_blank');