I componenti Vue.js sono elementi modulari e riutilizzabili che rappresentano parti specifiche dell’interfaccia utente di un’applicazione. Ogni componente Vue è autonomo, con la propria logica, struttura e stile. Questo approccio semplifica la gestione e la manutenzione del codice, specialmente in progetti complessi.
Definire i componenti in Vue.js
I componenti Vue.js possono essere definiti utilizzando l’estensione .vue, che comprende tre sezioni principali: template, script e stile. Il template contiene il markup HTML che definisce la struttura del componente, lo script contiene la logica JavaScript del componente, e lo stile contiene i CSS associati al componente.
App.vue
App.vue è comunemente considerato il componente principale di un’applicazione Vue.js, ovvero il componente radice, che contiene il layout generale dell’applicazione e coordina altri componenti all’interno di essa.
Nel file App.vue, troviamo il markup HTML, la logica JavaScript e gli stili CSS che definiscono il componente. Questo file viene solitamente utilizzato per strutturare l’intera applicazione, includendo altri componenti al suo interno e gestendo la disposizione globale dell’interfaccia utente.
Quando si crea un nuovo progetto Vue.js utilizzando Vue CLI, il file App.vue viene creato automaticamente come parte della struttura di base del progetto e viene utilizzato come punto di ingresso principale dell’applicazione.
Ecco come si presenta il file App.vue:
<template>
<div id="app">
<img alt="Vue logo" src="./assets/logo.png">
<HelloWorld msg="Welcome to Your Vue.js App"/>
</div>
</template>
<script>
import HelloWorld from './components/HelloWorld.vue'
export default {
name: 'App',
components: {
HelloWorld
}
}
</script>
<style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>
Ecco una spiegazione delle diverse sezioni:
- Template: Questa sezione contiene il markup HTML del componente. Nell’esempio, è presente un’immagine del logo di Vue.js e il componente
HelloWorldcon un messaggio di benvenuto. - Script: In questa sezione è definita la logica JavaScript del componente. Viene importato il componente
HelloWorlde registrato come componente figlio diApp. Il componenteHelloWorldè quindi disponibile per l’uso nel template. Troviamo poi la sintassiexport default, che in un componente Vue.js viene utilizzata per esportare il componente in modo che possa essere importato ed utilizzato in altre parti dell’applicazione. Questo è chiaramente utile quando si lavora con file.vueseparati per ciascun componente. - Quando si definisce un componente Vue.js all’interno di un file
.vue, spesso si utilizzaexport defaultper esportare l’oggetto che rappresenta il componente. Ad esempio: - Style: Questa sezione contiene gli stili CSS del componente. Gli stili qui definiti si applicano specificamente all’elemento con id
#app. In questo caso, vengono applicati stili per impostare il font, il colore del testo e l’allineamento del testo.
Quindi, questo file App.vue funge da componente principale dell’applicazione Vue.js e coordina l’aspetto e il comportamento generale dell’applicazione, inclusi altri componenti al suo interno.
Componenti Vue.js – HelloWorld
Il componente HelloWorld è un componente di esempio incluso automaticamente durante la creazione di un nuovo progetto Vue.js tramite Vue CLI, ma può variare a seconda delle impostazioni del progetto. Anche questo componente presenta uno struttura di questo tipo:
<template>
//qui va il codice html
<div>{{ msg }}</div>
</template>
<script>
// qui va il codice JavaScript
export default {
...
}
</script>
<style scoped>
//qui va il codice CSS
</style>
La direttiva “scoped” (opzionale) all’interno della sezione <style> di un componente Vue.js specifica che gli stili definiti in quel blocco di stile sono validi solo per il componente attuale e non si estendono ai suoi componenti figlio o ad altri elementi dell’interfaccia utente. In altre parole, gli stili definiti all’interno di uno stile “scoped” sono limitati al contesto del componente in cui sono dichiarati e non hanno effetto globale.
Questo è utile per garantire che gli stili di un componente non interferiscano con quelli di altri componenti nell’applicazione, contribuendo a una migliore gestione e isolamento degli stili all’interno del progetto Vue.js.
Conclusione
In questa lezione abbiamo esaminato i componenti di base in Vue.js e il loro ruolo fondamentale nello sviluppo di applicazioni web. Abbiamo appreso che i componenti sono blocchi modulari di codice riutilizzabile, ciascuno con la propria logica, template e stile. Questo approccio permette una suddivisione efficace dell’interfaccia utente in parti più gestibili e modulari, facilitando la manutenzione e la scalabilità del codice.
In pratica, i componenti Vue.js offrono un modo potente e flessibile per organizzare e sviluppare applicazioni web, consentendo ai programmatori di creare interfacce utente dinamiche e reattive con facilità e rapidità . Con una comprensione solida dei concetti dei componenti, siamo pronti per esplorare ulteriormente le potenzialità di Vue.js nel nostro percorso di sviluppo web.
Alcuni link utili
Quiz interattivo: un quiz che permette di testare le conoscenze su determinati argomenti.
Memory Game: Un’avvincente sfida di concentrazione e memoria!
