GOV.UK 团队最近发布了“如何以及为何从 GOV.UK 中移除 jQuery”。这篇文章深入探讨了组织如何评估其工具,以及如何确定某项工具是否仍然是最适合当前工作的工具。这并不是要您立即从当前项目中移除库!我们中的许多人可能仍在支持遗留项目,并且由于浏览器需求限制,这可能不是一个可行选项。
一些批评认为,库的大小在现代网络速度和缓存的情况下可以忽略不计。
GOV.UK 发布了更新文章,以指标来回应这种批评——“移除 jQuery 对我们网站性能的影响”。
这篇文章还阐述了改进维护的理由。与其升级分散的过时代码版本,并通过零散的方式解决安全更新,不如移除依赖项来减少这种负担。这是拥有处理技术债务的奢华的梦想,可以参考 定义和处理技术债务。
之前,GitHub 也记录了他们如何逐步将 jQuery 从前端代码中分离。改进维护和开发人员体验是他们做出此决定的原因之一。
我特别关注的是关于 如何移除 jQuery 的文档链接。了解如何分离和执行迁移步骤是网站需要持续执行的维护任务,从曾经经历过相同事情的人那里获得指南令人放心。
进一步思考这个话题,发现了一些老生常谈的话题,例如 “你可能不需要 jQuery”(2014 年)、“(现在比以往任何时候都更) 你可能不需要 jQuery”(2017 年)、“jQuery 仍然相关吗?(1)”(2016 年)和 “jQuery 仍然相关吗?(2)”(2017 年)。
然而,该网站运行在 React 上。
我想这与网络速度无关,而是与库的流行程度有关
React 有什么问题吗?
我认为这意味着 React 也不完美。但是,这些评论可能并非针对 React 本身,而是针对开发者频繁跳槽追逐新技术潮流,并对旧技术嗤之以鼻的行为。
我认为将 jQuery 与 React 相提并论并没有帮助:React 提供了用于创建界面的声明式 API,而 jQuery 则没有,它提供的是命令式 API,这是风马牛不相及的。
虽然 jQuery 在过去是一个福音,但如今它带来的许多功能现在都可以在现代浏览器中实现,因此替换它是有意义的。为什么加载一个大型脚本,很多人主要使用它来获取针对旧浏览器提供的许多好功能,但这些功能现在都可以在现代浏览器中原生支持?网络是否提供了一个原生的声明式 API?据我所知,没有。也许他们可以用一些轻量级的替代方案来替换 React,一些替代方案与 React 兼容,但目前,没有任何替代方案拥有像 React 那样广泛的支持和庞大的社区,因此这样做几乎没有意义。
首先需要问的问题是,为什么英国政府网站使用 jQuery。
它是否用于使编程统一?
它是否用于跨不同浏览器和浏览器版本实现兼容性?
它是否用于以更少的代码量执行某些操作(更快地开发)?
可能存在上述一个或多个原因,或者可能还有其他原因。
我阅读了英国政府博客上的文章,但似乎他们没有提到使用 jQuery 的原因。对于移除 jQuery,他们似乎只考虑了页面加载性能。不清楚他们是否考虑了其他问题!