Skip to content

4. Progetto [vuejs-02]: Utilizzo del framework CSS Bootstrap

Il progetto [vuejs-02] mostra come usare Bootstrap in un progetto [Vue.js]. Questo è il framework CSS che useremo in tutti i nostri progetti. Useremo una variante di Bootstrap chiamata [BootstrapVue] [https://bootstrap-vue.js.org/].

La struttura delle directory del progetto sarà la seguente:

Image

Nota: nel documento sottostante, la cartella [vuejs] è stata rinominata [cours] [1].

4.1. Installazione del framework [BootstrapVue]

[BootstrapVue] è un framework che aggiungiamo al progetto utilizzando lo strumento [npm]:

Image

  • In [1], stiamo quindi installando due framework: [Bootstrap] e la sua variante [BootstrapVue];
  • in [2], entrambe le dipendenze compaiono nel file [package.json];

4.2. Lo script [main.js]

Lo script principale [main.js] è il seguente:


// 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')
  • riga 2: importa il framework [Vue];
  • riga 3: importare la vista principale;
  • riga 6: importare il framework [BootstrapVue];
  • riga 7: questo framework è progettato come plugin per il framework [Vue]. La riga 7 include questo plugin nel framework [Vue];
  • righe 10–11: importare i file CSS dai framework [Bootstrap] e [BootstrapVue];
  • Le righe 5–11 sono quindi interamente dedicate all'utilizzo di [BootstrapVue]. Il resto del codice è identico a quello che abbiamo visto nel paragrafo precedente;

4.3. Il componente [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>

Commenti

  • righe 1–21: tutti i tag <b-xx> sono tag del framework [BootstrapVue];
  • righe 2, 20: il tag <b-container> definisce un contenitore Bootstrap. All'interno di questo contenitore, possiamo definire righe utilizzando il tag <b-row> e colonne utilizzando il tag <b-col>;
  • righe 3, 19: il tag <b-card> definisce una “scheda” Bootstrap. Visivamente, questa appare come un rettangolo con un bordo;
  • righe 5, 17: il tag <b-jumbotron> consente di evidenziare una sezione della pagina, in questo caso un'immagine e del testo. Lo useremo nei nostri vari progetti come identificatore visivo del progetto;
  • riga 7: il tag <b-row> definisce una riga;
  • righe 9–11: il tag <b-col> definisce una colonna nella riga precedente. Bootstrap assegna 12 colonne a ciascuna riga. L'attributo [cols=’4’] indica che la colonna <b-col> occuperà 4 di queste 12 colonne;
  • Riga 10: un'immagine
  • righe 13–15: una colonna che occuperà 8 delle 12 colonne della riga. Inseriamo del testo in quel punto;
  • riga 18: utilizzo di un componente chiamato [HelloBootstrap] con una proprietà denominata [msg];
  • righe 24–33: la parte <script> del componente;
  • righe 29–31: il componente [HelloBootstrap] utilizzato nella riga 18 viene esportato. Per essere riconosciuto, deve essere importato nella riga 25;

Il risultato è il seguente:

Image

  • in [1], il tag <b-card>;
  • in [2], il tag <jumbotron>;
  • in [3], l'immagine a 4 colonne;
  • in [4], il testo a 8 colonne;

4.4. Il [HelloBootstrap]

[HelloBootstrap] è il seguente componente:


<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>

Commenti

  • riga 3: il tag <b-alert show> visualizza un rettangolo colorato che in genere contiene del testo (riga 6). L'attributo [variant] consente di selezionare un tipo di avviso. Ogni tipo di avviso ha un colore di sfondo diverso. Il colore per la variante [success] è il verde. L'attributo [align] consente di allineare il testo dell'avviso (a sinistra, a destra o al centro). Si noti che l'attributo [show] è necessario per visualizzare l'avviso. Senza questo attributo, l'avviso non è visibile;
  • Valori possibili per [variant]:
    • [primary]: blu;
    • [secondary]: grigio;
    • [success]: verde;
    • [danger]: rosso chiaro;
    • [avviso]: giallo;
    • [info]: turchese;
    • [luce]: nessun colore di sfondo;
    • [dark]: grigio leggermente più scuro di [secondary];
  • riga 12: [msg] è un parametro del componente [HelloBootstrap] (righe 21–23);

Il risultato visivo è il seguente:

Image

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

4.5. Esecuzione del progetto

Per eseguire il progetto, modificare innanzitutto il file [package.json]:

Image

  • in [3], modificare lo script eseguito dal comando [serve] [2] nel file package.json [1];
  • in [4], eseguire il progetto;

Nota: Di seguito utilizzeremo i tag del framework BootstrapVue, che hanno la forma <b-qualcosa>. Questo non è obbligatorio. È possibile utilizzare i tag del framework Bootstrap originale. Funzionano nei modelli [Vue.js]. Pertanto, gli sviluppatori abituati ai tag Bootstrap possono continuare a utilizzarli.