为什么我仍然使用jQuery的故事

图片 关于jQuery,许多人说:“只需使用常规JavaScript。 您不需要jQuery库。” 我能说什么 我不需要很多东西,但是尽管如此,当它们是很好的。 jQuery也是如此。 我不需要这个库,但是手头肯定很不错。

您可能不需要jQuery (YMNJQ)之类的网站都在宣传jQuery非常容易摆脱的想法。 但是此站点上的第一个示例演示了使用jQuery的充分理由。 在那里,用10行常规JS替换了一条简单的jQuery代码行!

大多数JavaScript API(特别是那些专注于DOM的API)都冒犯了我的审美观念。 坦率地说,这是我对他们的态度。 直接说,我认为这些API是一场噩梦。 例如, el.insertAdjacentElement('afterend', other)构造当然可以工作。 但是看起来好得多$(el).after(other) 。 尽管我从未真正喜欢过$()函数的外观,但是它比使用DOM的标准API给我们的东西要好得多。 我知道您可以使用$()代替jQuery(sel)window.jq = jQuery 。 但是我不会在没有空气的地方编程。 因此,我更喜欢使用标准技术。 我不知道这是好是坏,但是使用jQuery的标准是$()构造。

尝试快速记住如何使用DOM获取另一个元素的邻居元素。 我应该为this- nextSiblingnextElementSibling什么? 有什么区别? 哪些浏览器支持这种方法? 当您尝试记住这一点并查看MDN时,请检查自己,我使用jQuery编写next()prev()

执行JavaScript API中实现的许多常见操作很不方便。 我可以在此处提供此类操作的完整列表,但对我来说,它在YMNJQ页面上已完成。

为了使用JS工具解决各种简单问题,需要辅助功能。 同样,在YMNJQ网站上,您可以找到许多示例。 使用jQuery是在项目代码中包含此类帮助程序功能的标准方法。 同时,程序员不需要每次都需要这样的东西来从出现在他手上的Stack Overflow的第一个答案中获取代码片段。

尽管近来浏览器兼容性问题已失去其严重性,但它们仍然是相关的。 特别是-对于那些不属于开发人员阵营的人,他们认为,如果某些功能可在85%的浏览器中运行,那么它就适合他们。 顺便说一下, 这是为何Hello CSS不使用CSS变量的材料。

我应该一直使用jQuery吗? 不,当然不是。 任何其他依赖关系都将增加项目的复杂性并增加其代码量。 但是jQuery并不是一个很大的库。 最小化和压缩的标准组件耗时30 Kb。 不带ajax且很少使用的功能的自定义装配为23 Kb。 而使用querySelector而不是querySelector的程序集仅占用17 Kb。 为了解决许多问题,我对30 Kb的标准组件和17 Kb的优化组件感到非常满意。

在这里,您可以看到从Bootstrap删除jQuery并切换到常规JS方面已经付出了很大的努力。

开发人员已编写了自己的帮助程序功能。 他们不得不放弃IE支持,因为这种支持很难实施。 他们使API不兼容(“我们破坏了一切”),并花了一年半的时间。 我不能说发生的事情比发生的事情好得多。

我了解将Bootstrap转换为常规JS的原因。 例如,开发人员希望将Bootstrap与Vue.js或类似的东西一起使用。 而且在一个项目中的Vue.js和jQuery已经有点破产了。 我是减少Web上不必要代码数量的大力支持者( 是有关此方面的一些材料)。 但是我在这里建议从务实和现实的角度来看待这种情况。 Bootstrap中是否包含17 KB的jQuery代码-这样不好吗? 当我说要查看《中型》或《纽约时报》之类的网站时,为了保护这种情况,您需要下载超过兆字节的JavaScript代码,他们问我是否坐在任何56千克调制解调器线路上。 兆字节JS很好。 17Kb jQuery真的很重吗?
有充分的理由不使用jQuery。 例如,如果您正在编写要与他人共享的代码,或者正在创建一些小功能,则不需要jQuery。 但是,为什么要搞清楚,以免使用jQuery? 如果只写$()为什么还要花这么多精力呢? 我认为jQuery不应在任何地方始终使用,但我认为对jQuery的狂热拒绝是正确的。

我想指出,我还没有嫁给jQuery。 我很乐意使用“ jQuery light”之类的东西-一种涵盖标准API缺点的库,为程序员提供了更愉悦的体验。 YMNJQ网站推荐了旨在解决各种问题的bonzo库和$ dom库。 但是,其中许多似乎已经很久没有得到支持了。 另外,许多人已经知道jQuery。 为什么在没有充分理由的情况下将jQuery更改为其他内容?

在本文的上下文中,许多读者可能想知道我能对Vue.js,React和其他现代框架怎么说。 但是,本文的目的是映射普通的JavaScript和jQuery,而不是向社区提供“宏伟的通用前端开发理论”。

鉴于以上所述,我相信在使用jQuery的地方使用普通JS的理由很少。 这主要是因为我想创建快速页面并使用最简单的工作结构。 同时,我努力确保尽可能多的Web用户可以查看我的页面。 经验告诉我,实现此目标的最短方法是在服务器上生成的模板,这些模板在JavaScript的基础上以“渐进式改进”的方式略为成熟。 如果将此类项目与使用更复杂的项目进行比较,那么事实证明它们通常更易于开发。 这样的项目通常速度更快,通常错误更少,并且在进行处理时,笔记本电脑风扇不会发出会唤醒整个房子的噪音。

这是否意味着现代Web框架和强大的库总是不好的? 不,不是。 很少有人总是被称为坏或好。 但是使用框架意味着要做出一些让步(当然,这对于jQuery是正确的)。

通常,我将Web视为查看文档的环境,而不是操作系统。 而且,“文档方法”不仅对于常规站点也很有效,对于许多“ Web应用程序”(无论您称其为什么)也都很好。

亲爱的读者们! 您使用jQuery吗?



Source: https://habr.com/ru/post/zh-CN455509/


All Articles