专栏首页九彩拼盘的叨叨叨我们到底需不需要 jQuery

我们到底需不需要 jQuery

曾经,在那个 IE6 还是主流浏览器的时代,为了实现稍微复杂一点的功能,也需要很多代码。如果要做到兼容主流浏览器,更需大费周章。当 jQuery 出现后,使用 jQuery 实现同样的功能,我们只需写很少的代码,并且兼容主流浏览器。于是,大部分网站都会使用 jQuery。

时过境迁,我们到底需不需要 jQuery 呢?

认为不需要 jQuery 的理由如下:

  • IE7 及更低版本的浏览器的市场份额已经低到忽略的地步。而用 IE8 及更高版本的浏览器的原生 API 来实现 jQuery 提供的功能并不是很麻烦。比如:
/* 选取元素 */
// IE8+
document.querySelectorAll(选择器);

// jQuery
$(选择器);


/* Ajax */
// IE8+
var request = new XMLHttpRequest();
request.open('GET', '/my/url', true);

request.onreadystatechange = function() {
  if (this.readyState === 4) {
    if (this.status >= 200 && this.status < 400) {
      // Success!
      var resp = this.responseText;
    } else {
      // Error :(
    }
  }
};

request.send();
request = null;

// jQuery
$.ajax({
  type: 'GET',
  url: '/my/url',
  success: function(resp) {

  },
  error: function() {

  }
});


/* 绑定事件 */
// IE8+
function addEventListener(el, eventName, handler) {
  if (el.addEventListener) {
    el.addEventListener(eventName, handler);
  } else {
    el.attachEvent('on' + eventName, function(){
      handler.call(el);
    });
  }
}

addEventListener(el, eventName, handler);

// jQuery
$(el).on(eventName, eventHandler);
  • 用 jQuery 做页面的交互的做法是,当数据改变时,选择数据对应的 DOM,然后修改 DOM。如果 HTML 发生改变,如某元素的 id 改了, 而 jQuery 是通过 id 来找那元素的,那 jQuery 的代码也需要修改。而且,如果页面的数据与 DOM 的交互很复杂,用 jQuery 还满麻烦的。在这些情况下,用 MVVM 的框架是个不错的选择: MVVM 做页面的交互的做法是,在 HTML 中,设置好了 DOM 与数据的关系。当数据改变时,框架会更新 DOM。

认为需要 jQuery 的理由如下

  • jQuery 的有丰富的插件库。
  • 不少现代的框架依赖 jQuery,如 Bootstrap 的 JS 插件,Ember,Meteor JS。如果要用那些框架,就不得不用 jQuery。
  • 用 jQuery 比用原生的 API 好学,好用,强大,简洁, 还不需要考虑浏览器兼容性问题。
  • jQuery 的开发仍在继续中。并且与时俱进的增加了一些新特性。比如,jQuery 3 增加允许用 for... of 来遍历 jQuery 集合的 DOM 元素。如
var $inputs = $('input');
var i = 0;

for(var input of $inputs) {
   input.id = 'input-' + i++;
}

那么,我们到底需不需要 jQuery 呢? 其实还是要根据具体项目来定。对我来说,对于一般的项目,我都会用 jQuery,毕竟 jQuery 大小不大,比如,jquery-3.0.0-beta1.min.js 在没 gzip 压缩前也就 86 KB。

参考链接


本文遵守创作共享CC BY-NC-SA 4.0协议 网络平台如需转载必须与本人联系确认。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 学习前端 第6周 第5天

    Joel
  • 学习前端 第6周 第1天

    Joel
  • Web 前端菜鸟源码阅读列表

    阅读优秀源码的好处有好多,如能学习一些技术知识,编码技巧,组织代码的方式,提高理解能力等等。

    Joel
  • 2019 年了,为什么我还在用 jQuery?

    为了保证可读性,本文采用意译而非直译。翻译仅供学习探讨,不代表 Fundebug 观点。

    Fundebug
  • jQuery架构设计与实现(2.1.4版本)

    貟王軍
  • 前端基础-jQuery简介

    JavaScript开发的过程中,处理浏览器的兼容很复杂而且很耗时,于是一些封装了这些操作的库应运而生。这些库还会把一些常用的代码进行封装。

    cwl_java
  • 有空看看jQuery源码吧,看不懂也会有收获

    jQuery是一个对新人很亲切的JS库,它的源码风格都比较接近自然语言,可以一边对照手册,一边查看jQuery源码。第一次看必然很吃力,不过没关系,这就是学习的...

    web前端教室
  • 强烈推荐:240多个jQuery插件

    概述 jQuery 是继 prototype 之后又一个优秀的 Javascript 框架。其宗旨是—写更少的代码,做更多的事情。它是轻量级的 js 库(压缩后...

    hbbliyong
  • Github改版,宣布放弃jQuery || 你的青春里,是否有过 JQuery 的身影?

    2018年7月25日,Mislav Marohnić在推文中宣布GitHub前端已经彻底删除jQuery依赖,并全部依赖原生API。

    芋道源码
  • jquery学习笔记1

    // 核心方法 // 回调系统 // 异步队列 // 数据缓存 // 队列操作 // 选择器引 ...

    lilugirl

扫码关注云+社区

领取腾讯云代金券