Skip to content

4. Projekt [vuejs-02]: Verwendung des Bootstrap-Frameworks CSS

Das Projekt [vuejs-02] zeigt die Verwendung von Bootstrap in einem [vue.js]-Projekt. Das Framework CSS wird in allen unseren Projekten verwendet. Wir werden eine Variante von Bootstrap namens [BootstrapVue] [https://bootstrap-vue.js.org/] verwenden.

Die Projektstruktur sieht wie folgt aus:

Image

Hinweis: Der oben genannte Ordner „[vuejs]“ wurde im weiteren Verlauf des Dokuments in „[cours] [1]“ umbenannt.

4.1. Installation des Frameworks [BootstrapVue]

[BootstrapVue] ist ein Framework, das mit dem Tool [npm] zum Projekt hinzugefügt wird:

Image

  • In [1] werden also zwei Frameworks installiert: [Bootstrap] und dessen Variante [BootstrapVue];
  • bei [2] erscheinen beide Abhängigkeiten in der Datei [package.json];

4.2. Das Skript [main.js]

Das Hauptskript [main.js] lautet wie folgt:


// Importe
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'

// Konfiguration
Vue.config.productionTip = false

// Projektinstanziierung [App]
new Vue({
  render: h => h(App),
}).$mount('#App')
  • Zeile 2: Import des Frameworks [Vue];
  • Zeile 3: Import der Hauptansicht;
  • Zeile 6: Import des Frameworks [BootstrapVue];
  • Zeile 7: Dieses Framework ist als Plugin des Frameworks [Vue] konzipiert. Zeile 7 bindet dieses Plugin in das Framework [Vue] ein;
  • Zeilen 10–11: Import der Dateien CSS aus den Frameworks [Bootstrap] und [BootstrapVue];
  • Die Zeilen 5–11 sind somit vollständig der Verwendung von [BootstrapVue] gewidmet. Der Rest des Codes entspricht dem, was wir im vorigen Absatz gesehen haben;

4.3. Die Komponente [App.vue]


<template>
  <b-container>
    <b-card>
      <!-- Bootstrap Jumbotron -->
      <b-jumbotron>
        <!-- Zeile -->
        <b-row>
          <!-- Spalte mit einer Breite von 4 -->
          <b-col cols="4">
            <img src="./assets/logo.jpg" alt="Cerisier en fleurs" />
          </b-col>
          <!-- Spalte mit einer Breite von 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>

Kommentare

  • Zeilen 1–21: Alle <b-xx>-Tags sind Tags des Frameworks [BootstrapVue];
  • Zeilen 2, 20: Das Tag <b-container> definiert einen Bootstrap-Container. Innerhalb dieses Containers können wir Zeilen mit dem Tag <b-row> und Spalten mit dem Tag <b-col> definieren;
  • Zeilen 3, 19: Das Tag <b-card> definiert eine Bootstrap-„Karte“. Visuell wird dies durch ein Rechteck mit einem Rahmen dargestellt;
  • Zeilen 5, 17: Mit dem Tag <b-jumbotron> lässt sich ein Teil der Seite hervorheben, in diesem Fall ein Bild und ein Text. Wir werden es in unseren verschiedenen Projekten als visuelles Erkennungsmerkmal des Projekts verwenden;
  • Zeile 7: Das Tag <b-row> definiert eine Zeile;
  • Zeilen 9–11: Das Tag <b-col> definiert eine Spalte der vorherigen Zeile. Bootstrap weist jeder Zeile 12 Spalten zu. Das Attribut [cols=’4’] gibt an, dass die Spalte <b-col> 4 dieser 12 Spalten einnehmen wird;
  • Zeile 10: ein Bild
  • Zeilen 13–15: Eine Spalte, die 8 der 12 Spalten der Zeile einnimmt. Dort wird Text eingefügt;
  • Zeile 18: Verwendung einer Komponente namens [HelloBootstrap] mit einer Eigenschaft namens [msg];
  • Zeilen 24–33: Der Abschnitt <script> der Komponente;
  • Zeilen 29–31: Die in Zeile 18 verwendete Komponente [HelloBootstrap] wird exportiert. Damit sie bekannt ist, muss sie in Zeile 25 importiert werden;

Das Ergebnis lautet wie folgt:

Image

  • in [1], das <b-card>-Tag;
  • in [2], das <jumbotron>-Tag;
  • in [3] das Bild über 4 Spalten;
  • in [4], der Text in 8 Spalten;

4.4. Die Komponente [HelloBootstrap]

[HelloBootstrap] ist die folgende Komponente:


<template>
  <div>
    <!-- Meldung auf grünem Hintergrund -->
    <b-col cols="12">
      <b-alert show variant="success" align="center">
        <h4>[vuejs-02] : bootstrap</h4>
      </b-alert>
    </b-col>
    <!-- Meldung auf gelbem Hintergrund -->
    <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>

Anmerkungen

  • Zeile 3: Das Tag <b-alert show> zeigt ein farbiges Rechteck an, in das in der Regel ein Text eingefügt wird (Zeile 6). Mit dem Attribut [variant] kann ein Alarmtyp ausgewählt werden. Jeder Alarmtyp hat eine andere Hintergrundfarbe. Die Farbe der Variante [success] ist Grün. Mit dem Attribut [align] kann der Text des Alarms ausgerichtet werden (links, rechts, zentriert). Es ist zu beachten, dass das Attribut [show] erforderlich ist, um die Warnmeldung anzuzeigen. Ohne dieses Attribut ist die Warnmeldung nicht sichtbar;
  • Mögliche Werte für [variant]:
    • [primary]: blau;
    • [secondary]: grau;
    • [success]: grün;
    • [danger]: hellrot;
    • [warning]: gelb;
    • [info]: türkis;
    • [light]: keine Hintergrundfarbe;
    • [dark]: Grau, etwas dunkler als [secondary];
  • Zeile 12: [msg] ist ein Parameter der Komponente [HelloBootstrap] (Zeilen 21–23);

Die visuelle Darstellung sieht wie folgt aus:

Image

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

4.5. Ausführung des Projekts

Um das Projekt auszuführen, wird zunächst die Datei [package.json] geändert:

Image

  • in [3], das vom Befehl [serve] ausgeführte Skript [2] aus der Datei package.json [1] wird geändert;
  • in [4] wird das Projekt ausgeführt;

Hinweis: Im weiteren Verlauf werden die Tags des Frameworks BootstrapVue verwendet, also Tags der Form <b-qqchose>. Dies ist jedoch nicht zwingend erforderlich. Man kann auch die ursprünglichen Tags des Bootstrap-Frameworks verwenden. Diese funktionieren in den Vorlagen von [Vue.js]. Entwickler, die an Bootstrap-Tags gewöhnt sind, können diese daher weiterhin nutzen.