Skip to content

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

[vuejs-02] 项目演示了在 [Vue.js] 项目中使用 Bootstrap 的方法。这是我们所有项目中都将采用的 CSS 框架。我们将使用 Bootstrap 的一个变体,即 [BootstrapVue] [https://bootstrap-vue.js.org/]

项目目录结构如下:

Image

注意:在下文文档中,[vuejs] 文件夹已重命名为 [cours] [1]

4.1. 安装 [BootstrapVue] 框架

[BootstrapVue] 是一个框架,我们使用 [npm] 工具将其添加到项目中:

Image

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

4.2. [main.js] 脚本

主脚本 [main.js] 如下所示:


// imports
import Vue from 'vue'
import App from './App.vue'
 
// plugins
import BootstrapVue from 'bootstrap-vue'
Vue.use(BootstrapVue);
 
// bootstrap
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css'
 
// configuration
Vue.config.productionTip = false
 
// instanciation projet [App]
new Vue({
  render: h => h(App),
}).$mount('#app')
  • 第 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>
        <!-- ligne -->
        <b-row>
          <!-- colonne de largeur 4 -->
          <b-col cols="4">
            <img src="./assets/logo.jpg" alt="Cerisier en fleurs" />
          </b-col>
          <!-- colonne de largeur 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>
    <!-- message on green background -->
    <b-col cols="12">
      <b-alert show variant="success" align="center">
        <h4>[vuejs-02] : bootstrap</h4>
      </b-alert>
    </b-col>
    <!-- message on yellow background -->
    <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]:浅红色;
    • [警告]:黄色;
    • [信息]:青绿色;
    • [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] 中,修改 package.json 文件 [1] [serve] 命令 [2] 执行的脚本;
  • [4] 中,运行该项目;

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