了解没有jQuery的Rails

57 阅读2分钟

这与大小无关

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,我觉得在那里对性能和标准化的需求并不那么重要。