如何在 Vue 组件中使用 Bootstrap?

Posted

技术标签:

【中文标题】如何在 Vue 组件中使用 Bootstrap?【英文标题】:How can I use Bootstrap in Vue components? 【发布时间】:2020-12-17 15:53:41 【问题描述】:

我在这两个地方放了相同的 html(使用 Bootstrap 4.5.2)。

    index.html App.vue

在 index.html 中,Bootstrap 样式有效。在 App.vue 中,按钮之间的空间失败。我通过将mr-1 类添加到按钮来解决此问题。将普通 Bootstrap 放入组件时如何避免修复它?

我尝试了什么(结果相同)

    index.html添加官方BootstrapCDN代码

    将此添加到main.js 并安装模块

    import jQuery from "jquery";
    global.jQuery = jQuery;
    let Bootstrap = require("bootstrap");
    import "bootstrap/dist/css/bootstrap.css";
    

    在 App.vue 的 <style> 部分添加了这个

    @import url('https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css');
    

    莫敏的建议:

    将所有内容安装在项目文件夹目录中

    npm install bootstrap jquery popper.js

    将此添加到main.js: 的顶部

    import 'bootstrap'
    import 'bootstrap/dist/css/bootstrap.min.css'
    

【问题讨论】:

您在使用 BootstrapVue 吗?还是你现在想要? bootstrap-vue.org 没有。不,我可能不得不这样做。我的网站也将使用 Django + Bootstrap。 @DavidSmolinkski 我认为您不一定需要,但我之前使用过 BootstrapVue,我发现它非常有用且易于实现。绝对值得一试:) 我 90% 确定我会使用 Vuetify。它有很多视频教程,我应该学习一个 UI 框架。在我学习代码的 1 或 2 年中,我基本上消除了阅读视频之外的需要。我仍然会尝试让纯 Bootstrap 工作。 Django 模板将具有 Bootstrap。我选择了 Bootstrap,这样我可以有更少的选择、一个普通的网站和更多的教程。 【参考方案1】:

如果您需要 Bootstrap,请使用 BootsrapVue,它会为您完成繁重的工作。 如果您仍然愿意接受其他选择,Vuetifyjs 是一个非常好的框架,可以提供很多东西。

【讨论】:

【参考方案2】:

BootstrapVue 是一个不错的选择,但这完全取决于您。人们可以整天推荐其他替代方案(例如 Tailwind Vue)。 BootstrapVue 很好,因为如果您已经熟悉 Bootstrap,那么您将立即熟悉 BootstrapVue。同样,如果它确实对您的目的有用,那就去吧。

我个人喜欢包含您需要的内容的功能。

在此处的 BootstrapVue 文档“单个组件和指令”中了解更多信息:https://bootstrap-vue.org/docs#component-groups-and-directives-as-vue-plugins

【讨论】:

【参考方案3】:

添加引导样式和 javascript

在您的项目目录中安装 Bootstrap 及其依赖项。

npm install bootstrap jquery popper.js

如果你不打算使用 Bootstrap 的 JavaScript 而只使用它的样式,不要担心安装 jQueryPopper.js

最后,将这些行添加到project/src/main.js: 的顶部,将其导入主脚本

import 'bootstrap'
import 'bootstrap/dist/css/bootstrap.min.css'

重复一遍,如果您只想要样式而不是 JavaScript 功能,只需删除第一行并仅包含 CSS。

【讨论】:

谢谢。这产生了相同的结果。我将使用 Vuetify。

以上是关于如何在 Vue 组件中使用 Bootstrap?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Bootstrap Vue 在 Vue JS 上单击选项卡后如何加载组件?

使用组件时如何使文本区域在Bootstrap-vue中占据整个浏览器宽度

如何在 Vue 组件中使用 Bootstrap?

使用 bootstrap-vue b-nav-item 将 props 传递给 vue-router

在导航栏组件中结合 bootstrap-vue 和 vue-router

Vue-Bootstrap:如何触发一个 b-table 的排序以触发另一个 b-table 的排序?