【发布时间】: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 中所述)让我觉得这是一个糟糕的设计决策,至少有以下原因:
- jQuery 是一个相当庞大和臃肿的框架,现在任何使用 BS 插件的网站都必须下载它。诚然,BS 用户可以使用精简/缩小的构建 (unless they want to use jQuery AJAX),但即使是那些为除了 Bootstrap 之外的任何东西都可能不使用的库增加了不小的加载时间。
- 随着 Angular 和 React 等框架变得越来越流行(参见 StackOverflow trends),jQuery 总体上似乎最近失宠了。我知道旧的 != 很糟糕,而且 jQuery 在网络上仍然几乎无处不在,但为什么 BS 开发人员选择依赖一个已有十多年历史的框架?
- 在 BS 之前仅要求 jQuery 为
<script>ed 就不允许使用 Webpack 和 SystemJS 等现代捆绑程序进行非常清晰的依赖关系解析。同样,他们为什么不使用某种基于模块的依赖项? - 但最重要的是,在我看来:为什么 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