这与大小无关
jQuery并没有那么大。与设计者要求你在登陆页面上添加的高清背景视频相比,几十个KB根本不算什么。
然而我理解开发者的挫折感。浏览器能够处理jQuery所做的事情。因此,使用第三方lib而不是标准的、本地的解决方案,乍一看似乎是一种 "代码气味"。
这是关于习惯
jquery的API是非常直观的。而且在全球范围内共享。2014年左右,据我所知,大约90%的网站都在使用它(我不记得来源了,抱歉)。
插件生态系统是非常广泛的。
在那个时候,我真的想知道为什么jQuery没有被看作是一个网络标准,并直接集成到浏览器中。W3C本来可以在几年前就决定这样做。
无论如何,现在,已经太晚了。几乎所有的东西都可以用另一种方式,只要遵循标准的网络API就可以了。
问题是
现在,网络浏览器的API是。
- 更加冗长
- 不太直观
让我们举个例子。
// jQuery
$('.button').click(function() {
// code…
})
// JavaScript equivalent
[].forEach.call(document.querySelectorAll('.button'), function(el) {
el.addEventListener('click', function() {
// code…
})
})
- 你可以 "现在 "编写jQuery版本的代码,但你的jQuery知识有限。
- 如果不参考指南或小抄,你几乎无法编写JavaScript版本。
生态系统已经进化了。我现在经常看到一些只考虑到ES6的小库。我已经谈到了Rails和Bootstrap,但即使是我最喜欢的无障碍库,最初是用jQuery构建的,现在也有了vanillaJS的替代品。
解决办法
也许现在是时候让Rails应用程序尝试完全不使用jQuery了。我知道,有很多应用(和开发者)在很久以前就已经跳入了这个 "危险地带"。
这意味着更多的JavaScript。另一方面,无论如何,Hotwire的崛起意味着更少的JavaScript。
对于私人管理后台,我仍然嵌入jQuery,我觉得在那里对性能和标准化的需求并不那么重要。