为什么 Bootstrap 需要 jQuery?
Why Does Bootstrap Require jQuery?
我用谷歌搜索了这个问题无数次,但从未找到满意的答案。大多数答案似乎只是说“yes, Bootstrap plugins do require jQuery" or "yes, you can use BS without jQuery if you don't use the plugins". Bootstrap's reliance on jQuery (as described in their quick start) 让我觉得是一个糟糕的设计决定,至少出于以下原因:
- jQuery是一个相当庞大和臃肿的框架,现在任何使用BS插件的网站都必须下载它。诚然,BS 用户可以使用 slim/minified 版本(unless they want to use jQuery AJAX),但即使是这些版本也会为库添加不可忽略的加载时间,除了 Bootstrap.
- jQuery 总的来说最近似乎失宠了,因为像 Angular 和 React 这样的框架变得越来越流行(参见 Whosebug trends)。我知道旧的 != 不好,jQuery 在网络上仍然几乎无处不在,但为什么 BS 开发人员选择依赖一个超过十年的旧框架?
- 简单地要求 jQuery 在 BS 之前被
<script>
编辑,不允许使用 Webpack 和 SystemJS 等现代捆绑器进行非常明确的依赖关系解析。同样,他们为什么不使用某种基于模块的依赖性?
- 但在我看来最重要的是:为什么 BS 开发人员选择完全依赖 JS 框架?在这个符合标准的浏览器的美好时代,jQuery 的大部分功能现在都可以实现 with vanilla HTML/CSS/JS。我们都知道,在创建任何类型的软件 package/library 时,我们应该在可行的情况下尝试删除额外的依赖项,因为用户需要 那个包 而不是一堆其他额外的东西.
那么,BS 开发者选择依赖 jQuery 有什么原因吗?我可能只是在他们的 GitHub 页面上直接向 BS 开发人员询问了一个问题,但我希望未来的 google 员工可以更容易地访问 SO 问题。
2019 年 1 月更新:根据 Bootstrap docs,v5 正在删除 jQuery 依赖项,希望它很快就会到来。
2021 年 5 月更新:Bootstrap v5 已发布!如承诺的那样,此版本已删除 jQuery,如 release blog post.
中所述
Jquery 是一个流行的框架,许多开发人员都有使用它编写的经验,这使得他们的文档更容易理解。它还非常擅长处理 javascript 出现的许多跨浏览器怪癖。
如果实在不想用Jquery,还有bootstrap原生的:
http://thednp.github.io/bootstrap.native/
事后看来很容易判断(因为你的做法相当短视),但早在 2011 年,jQuery 并不被认为是臃肿或过时的,并且是提供简单 DOM 访问的主要经过验证的库.因此,在这种情况下,使用 jQuery.
非常有意义
事实上,6 年后可能仍然没有另一个库具有与 jQuery 相同的健壮性和功能集。
我用谷歌搜索了这个问题无数次,但从未找到满意的答案。大多数答案似乎只是说“yes, Bootstrap plugins do require jQuery" or "yes, you can use BS without jQuery if you don't use the plugins". Bootstrap's reliance on jQuery (as described in their quick start) 让我觉得是一个糟糕的设计决定,至少出于以下原因:
- jQuery是一个相当庞大和臃肿的框架,现在任何使用BS插件的网站都必须下载它。诚然,BS 用户可以使用 slim/minified 版本(unless they want to use jQuery AJAX),但即使是这些版本也会为库添加不可忽略的加载时间,除了 Bootstrap.
- jQuery 总的来说最近似乎失宠了,因为像 Angular 和 React 这样的框架变得越来越流行(参见 Whosebug trends)。我知道旧的 != 不好,jQuery 在网络上仍然几乎无处不在,但为什么 BS 开发人员选择依赖一个超过十年的旧框架?
- 简单地要求 jQuery 在 BS 之前被
<script>
编辑,不允许使用 Webpack 和 SystemJS 等现代捆绑器进行非常明确的依赖关系解析。同样,他们为什么不使用某种基于模块的依赖性? - 但在我看来最重要的是:为什么 BS 开发人员选择完全依赖 JS 框架?在这个符合标准的浏览器的美好时代,jQuery 的大部分功能现在都可以实现 with vanilla HTML/CSS/JS。我们都知道,在创建任何类型的软件 package/library 时,我们应该在可行的情况下尝试删除额外的依赖项,因为用户需要 那个包 而不是一堆其他额外的东西.
那么,BS 开发者选择依赖 jQuery 有什么原因吗?我可能只是在他们的 GitHub 页面上直接向 BS 开发人员询问了一个问题,但我希望未来的 google 员工可以更容易地访问 SO 问题。
2019 年 1 月更新:根据 Bootstrap docs,v5 正在删除 jQuery 依赖项,希望它很快就会到来。
2021 年 5 月更新:Bootstrap v5 已发布!如承诺的那样,此版本已删除 jQuery,如 release blog post.
中所述Jquery 是一个流行的框架,许多开发人员都有使用它编写的经验,这使得他们的文档更容易理解。它还非常擅长处理 javascript 出现的许多跨浏览器怪癖。
如果实在不想用Jquery,还有bootstrap原生的: http://thednp.github.io/bootstrap.native/
事后看来很容易判断(因为你的做法相当短视),但早在 2011 年,jQuery 并不被认为是臃肿或过时的,并且是提供简单 DOM 访问的主要经过验证的库.因此,在这种情况下,使用 jQuery.
非常有意义事实上,6 年后可能仍然没有另一个库具有与 jQuery 相同的健壮性和功能集。