Skip to content

4. 项目 [vuejs-02]:使用 Bootstrap 框架

[vuejs-02] 项目展示了在 [vue.js] 项目中使用 Bootstrap 的方法。CSS 框架将应用于我们所有的项目。 我们将使用一种名为 [BootstrapVue] [https://bootstrap-vue.js.org/] 的 Bootstrap 变体。

项目目录结构如下:

Image

:在本文后续内容中,上述文件夹 [vuejs] 已重命名为 [cours] [1]

4.1. 安装 [BootstrapVue] 框架

[BootstrapVue] 是一个框架,可通过工具 [npm] 将其添加到项目中:

Image

  • [1] 中,因此需要安装两个框架:[Bootstrap] 及其变体 [BootstrapVue]
  • [2] 中,这两个依赖项出现在文件 [package.json] 中;

4.2. 脚本 [main.js]

主脚本 [main.js] 如下:


// 导入
import Vue from 'vue'
import App from './App.vue'

// 插件
import BootstrapVue from 'bootstrap-vue'
Vue.use(BootstrapVue);

// 引导
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css'

// 配置
Vue.config.productionTip = false

// 项目实例化 [App]
new Vue({
  render: h => h(App),
}).$mount('#应用程序')
  • 第 2 行:导入框架 [Vue]
  • 第 3 行:导入主视图;
  • 第 6 行:导入框架 [BootstrapVue]
  • 第 7 行:该框架设计为 [Vue] 框架的插件。第 7 行将该插件纳入 [Vue] 框架;
  • 第10-11:导入框架[Bootstrap]和[BootstrapVue]中的CSS文件;
  • 因此第5-11行完全用于调用[BootstrapVue]。其余代码与上一段所述内容完全一致;

4.3. 组件 [App.vue]


<template>
  <b-container>
    <b-card>
      <!-- Bootstrap Jumbotron -->
      <b-jumbotron>
        <!-- 行 -->
        <b-row>
          <!-- 宽度为 4 的列 -->
          <b-col cols="4">
            <img src="./assets/logo.jpg" alt="Cerisier en fleurs" />
          </b-col>
          <!-- 宽度为 8 的列 -->
          <b-col cols="8">
            <h1>Calculez votre impôt</h1>
          </b-col>
        </b-row>
      </b-jumbotron>
      <HelloBootstrap msg="Hello Bootstrap !" />
    </b-card>
  </b-container>
</template>


<script>
  import HelloBootstrap from "./components/HelloBootstrap.vue";

  export default {
    name: "app",
    components: {
      HelloBootstrap
    }
  };
</script>

注释

  • 第 1-21 行:所有 <b-xx> 标签均属于 [BootstrapVue] 框架的标签;
  • 第 2、20 行:<b-container> 标签定义了一个 Bootstrap 容器。在此容器内,我们可以使用 <b-row> 标签定义行,使用 <b-col> 标签定义列;
  • 第3、19行:<b-card>标签定义了一个Bootstrap“卡片”。视觉上表现为一个带有边框的矩形;
  • 第 5、17 行:<b-jumbotron> 标签用于突出显示页面的一部分,此处为一张图片和一段文字。我们将在各类项目中使用它作为项目的视觉标识;
  • 第 7 行:<b-row> 标签定义一行;
  • 第 9-11 行:<b-col> 标签定义上一行的一个列。Bootstrap 为每行分配 12 个列。[cols=’4’] 属性表示该 <b-col> 列将占用这 12 个列中的 4 个;
  • 第 10 行:一张图片
  • 第13-15行:一个将占用该行12列中8列的列。其中放置一段文本;
  • 第18行:使用了名为[HelloBootstrap]的组件,该组件具有一个名为[msg]的属性;
  • 第24-33行:组件的<script>部分;
  • 第29-31行:第18行使用的组件[HelloBootstrap]被导出。为了使其可用,必须在第25行将其导入;

结果如下:

Image

  • [1] 中,<b-card> 标签;
  • [2] 对应 <jumbotron> 标签;
  • 转换为 [3],即 4 列图片;
  • [4] 中,8 列文本;

4.4. 组件 [HelloBootstrap]

[HelloBootstrap] 是以下组件:


<template>
  <div>
    <!-- 绿色背景上的消息 -->
    <b-col cols="12">
      <b-alert show variant="success" align="center">
        <h4>[vuejs-02] : bootstrap</h4>
      </b-alert>
    </b-col>
    <!-- 黄色背景上的消息 -->
    <b-col cols="12">
      <b-alert show variant="warning" align="center">
        <h4>{{msg}}</h4>
      </b-alert>
    </b-col>
  </div>
</template>

<script>
  export default {
    name: "HelloBootstrap",
    props: {
      msg: String
    }
  };
</script>

注释

  • 第 3 行:<b-alert show> 标签会显示一个彩色矩形,通常会在其中放置文本(第 6 行)。[variant] 属性用于选择警报类型。 每种提示类型都有不同的背景色。[success] 变体的背景色为绿色。[align] 属性用于对齐提示文本(左对齐、右对齐、居中)。 请注意,[show] 属性是显示警报的必填项。若缺少该属性,警报将不可见;
  • [variant] 的可能取值:
    • [primary]:蓝色;
    • [secondary]:灰色;
    • [success]:绿色;
    • [danger]:浅红色;
    • [warning]:黄色;
    • [info]:青绿色;
    • [light]:无背景色;
    • [dark]:比 [secondary] 稍深的灰色;
  • 第12行:[msg]是组件[HelloBootstrap](第21-23行)的一个参数;

视觉效果如下:

Image

  • [1]:标签 <b-alert show variant=’success’>;
  • [2]:标签 <b-alert show variant=’warning’>;

4.5. 项目运行

要运行该项目,首先修改文件 [package.json]

Image

  • [3],修改由命令 [serve] [2] 执行的脚本(位于文件 package.json [1] 中);
  • [4] 中,执行该项目;

:在以下内容中,我们将使用 BootstrapVue 框架的标签,即 <b-qqchose> 形式的标签。但这并非强制要求。 也可以使用Bootstrap框架的原始标签。这些标签在[Vue.js]的模板中同样有效。因此,习惯使用Bootstrap标签的开发者可以继续使用它们。