【问题标题】:Why Does Bootstrap Require jQuery? [closed]为什么 Bootstrap 需要 jQuery? [关闭]
【发布时间】:2018-03-22 08:41:41
【问题描述】:

我已经多次搜索这个问题,但从未找到满意的答案。大多数答案似乎只是说“yes, Bootstrap plugins do require jQuery”或“yes, you can use BS without jQuery if you don't use the plugins”。 Bootstrap 对 jQuery 的依赖(如他们的 quick start 中所述)让我觉得这是一个糟糕的设计决策,至少有以下原因:

  1. jQuery 是一个相当庞大和臃肿的框架,现在任何使用 BS 插件的网站都必须下载它。诚然,BS 用户可以使用精简/缩小的构建 (unless they want to use jQuery AJAX),但即使是那些为除了 Bootstrap 之外的任何东西都可能不使用的库增加了不小的加载时间。
  2. 随着 Angular 和 React 等框架变得越来越流行(参见 StackOverflow trends),jQuery 总体上似乎最近失宠了。我知道旧的 != 很糟糕,而且 jQuery 在网络上仍然几乎无处不在,但为什么 BS 开发人员选择依赖一个已有十多年历史的框架?
  3. 在 BS 之前仅要求 jQuery 为 <script>ed 就不允许使用 Webpack 和 SystemJS 等现代捆绑程序进行非常清晰的依赖关系解析。同样,他们为什么不使用某种基于模块的依赖项?
  4. 但最重要的是,在我看来:为什么 BS 开发人员选择完全依赖 JS 框架?在这个兼容标准的浏览器的美好时代,jQuery 的大部分功能现在都可以实现with vanilla HTML/CSS/JS。我们都知道,在创建任何类型的软件包/库时,只要可行,我们都应该尝试删除额外的依赖项,因为用户想要那个软件包,而不是一堆其他额外的绒毛。

那么,尽管有上述所有情况,BS 开发人员选择依赖 jQuery 有什么原因吗?我可能直接向 BS 开发人员询问他们的 GitHub 页面上的问题,但我希望未来有这些问题的谷歌人可以更容易地访问 SO 问题。

2019 年 1 月更新:根据Bootstrap docs,v5 正在删除 jQuery 依赖项,因此希望很快就会到来。

2021 年 5 月更新:Bootstrap v5 已发布!正如所承诺的,此版本已删除 jQuery,如 release blog post 中所述。

【问题讨论】:

  • 它很流行——趋势图显示它仍然高于其他框架。开发人员有编写它的经验。您只需要它用于 Bootstrap 的交互元素。
  • 似乎在这里询问导致 BS 开发团队使用 jQuery 的动机确实是题外话。为什么不问他们?
  • 这更像是一个意见问题,因为它目前是框架的。您也许可以删除社论、发泄和恶作剧,以提高工作效率。技术原因是他们在 Javascript 实现中使用了 Jquery 选择器,无论喜欢与否,它都是一个依赖项。
  • jQuery-3.2.1.slim.js 在压缩和 gzip 压缩后小于 24k(23896 字节),所以我不确定您如何认为“这是一个相当大且臃肿的框架”。看起来你并不是真的来问一个真正的问题,而是来尝试验证你先入为主的偏见。 Vue btw 在压缩和 gzip 压缩时也是 20k,你认为那是新的和臃肿的吗?
  • 积分,全部。我真的很喜欢 jQuery,并且几乎在每个项目中都使用它。最近我一直在研究大量关于现代 SPA 框架(如 Angular、Redux、React、Vue 等)的文献,并惊讶/失望地发现有多少作者确实似乎拥有偏向于 jQuery。似乎新开发人员远离 jQuery,所以我想知道为什么 BS 没有。

标签: javascript jquery twitter-bootstrap javascript-framework


【解决方案1】:

事后看来,这很容易判断(因为您的做法相当短视),但早在 2011 年,jQuery 并没有被认为是臃肿或过时的,它是提供简单 DOM 访问的主要经过验证的库。所以在这种情况下,使用 jQuery 是非常有意义的。

事实上,6 年后可能仍然没有另一个库具有与 jQuery 相同的健壮性和功能集。

【讨论】:

  • @Inertialboogie “短视”在这里是合适的词;我没有意识到 BS 自 2011 年以来一直存在!这几乎解释了它,虽然我很想知道他们今天是否会做出同样的选择。不过,这篇文章的普遍共识似乎是我应该直接问他们:P
【解决方案2】:

Jquery 是一种流行的框架,许多开发人员都有使用它编写的经验,这使得他们的文档更易于消化。它也非常擅长处理 javascript 呈现的许多跨浏览器怪癖。

如果你真的不想用Jquery,有bootstrap native: http://thednp.github.io/bootstrap.native/

【讨论】:

  • 感谢您的回答!我之前遇到过 Bootstrap Native,但总是对使用第三方仿冒品持谨慎态度。不过,这可能值得一试
猜你喜欢
  • 2021-02-02
  • 1970-01-01
  • 2013-05-07
  • 2021-11-06
  • 2012-12-03
  • 1970-01-01
  • 1970-01-01
  • 2011-10-27
  • 2011-05-27
相关资源
最近更新 更多