
Benvenuto nella nostra guida completa agli slot di Vue.js. Vue.js è un framework JavaScript molto diffuso per costruire applicazioni web. Mette a disposizione parecchie funzionalità che rendono lo sviluppo più semplice ed efficace, e gli slot sono una di queste.
Gli slot sono un modo potente per condividere contenuti tra i componenti. Permettono di riutilizzare senza fatica pezzi di codice HTML e di inserirli in altre parti dell’applicazione.
Che cos’è uno slot?
Uno slot è un elemento speciale di un componente Vue.js che definisce il punto in cui può essere iniettato un contenuto esterno. È utile quando vuoi riutilizzare uno stesso componente in parti diverse dell’applicazione, ma con contenuti diversi.
Per esempio, potresti avere un componente che mostra un pulsante. Se vuoi usarlo in più punti dell’applicazione ma con etichette diverse, uno slot ti permette di iniettare il contenuto specifico di ogni utilizzo.
Come si usano gli slot?
Per usare gli slot devi prima dichiararne uno nel componente principale. La sintassi è questa:
<template>
<div>
<slot></slot>
</div>
</template>Poi puoi usare quel componente iniettando del contenuto nello slot dichiarato:
<my-component>
<p>Contenu injecté</p>
</my-component>Il contenuto iniettato viene mostrato al posto dello slot nel componente principale.
Tipi di slot
Esistono diversi tipi di slot, da scegliere in base alle tue esigenze:
Slot di default
Questo tipo di slot viene usato quando non ne viene indicato nessun altro. Si dichiara semplicemente con la sintassi <slot></slot>.
<template>
<div>
<slot></slot>
</div>
</template>
Slot con nome
Permette di dichiarare più slot in uno stesso componente e di usarli chiamandoli per nome. Per esempio:
<template>
<div>
<slot name="header"></slot>
<slot name="footer"></slot>
</div>
</template>
Slot scoped
Questo slot permette di iniettare contenuto con uno scope personalizzato. Si dichiara con la sintassi seguente:
<template>
<div>
<slot v-bind:text="textProp"></slot>
</div>
</template>
<script>
export default {
data() {
return {
textProp: 'Texte par défaut'
}
}
}
</script>Quando usi il componente con uno slot scoped, puoi anche passare delle proprietà attraverso lo slot:
<my-component>
<template v-slot:default="slotProps">
{{ slotProps.text }}
</template>
</my-component>Casi d’uso ricorrenti degli slot
Gli slot tornano utili in parecchie situazioni, per esempio:
- Riutilizzare un componente con contenuti diversi.
- Personalizzare un componente con stili e comportamenti specifici.
- Creare temi per i componenti, per usarli in modo flessibile in punti diversi dell’applicazione.
Conclusione
Gli slot sono una funzionalità potente di Vue.js che permette di condividere contenuti tra i componenti in modo flessibile ed efficace. I diversi tipi di slot rispondono a esigenze diverse, e si prestano a moltissimi casi d’uso.
Speriamo che questa guida dettagliata agli slot di Vue.js ti sia stata utile e ti abbia dato un’idea chiara di come funzionano e di come si usano.


