0Pricing
Vue Academy · Lezione

Props ed eventi personalizzati

Trasmetta i dati verso il basso con le props ed emetta eventi verso i componenti genitori.

Props ed eventi personalizzati è una lezione Vue Academy gratuita su CoddyKit. Questa è la lezione 2 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Vue Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Vue Academy include 3 lezioni in totale.

Comunicazione tra componente padre e figlio

I componenti comunicano in due direzioni:

  • Le props trasmettono dati dal componente padre al figlio
  • Gli eventi inviano messaggi dal figlio al padre

Questo flusso di dati unidirezionale rende le applicazioni prevedibili.

Dichiarazione delle props

Il componente figlio dichiara le props che accetta. In script setup, utilizzi defineProps.

<script setup>
const props = defineProps(['title', 'count'])
</script>

<template>
  <h2>{{ title }}</h2>
  <p>{{ count }}</p>
</template>

Props con tipi

Dichiari le props come oggetto per specificare i tipi da utilizzare per la convalida.

<script setup>
defineProps({
  title: String,
  count: Number,
  isActive: Boolean
})
</script>

Props con valori predefiniti e obbligatorie

È possibile contrassegnare le props come obbligatorie e assegnare valori predefiniti.

<script setup>
defineProps({
  title: {
    type: String,
    required: true
  },
  count: {
    type: Number,
    default: 0
  }
})
</script>

Passaggio delle props dal componente padre

Il componente padre passa i dati come attributi. Utilizzi : per associare valori dinamici.

<template>
  <ProductCard
    title="Coffee Mug"
    :count="stock"
    :is-active="available"
  />
</template>

<!-- static string vs bound expression -->

Convenzione per i nomi delle props

Dichiari le props in camelCase in JS e le passi in kebab-case nei template.

  • Prop in JS: isActive
  • Attributo nel template: :is-active

Vue converte automaticamente da una forma all'altra.

Le props sono di sola lettura

Il componente figlio non deve modificare direttamente le proprie props.

  • Le props fluiscono in una sola direzione, verso il basso
  • Modificarle compromette la prevedibilità e genera avvisi
  • Per modificare dati condivisi, emetta un evento affinché sia il componente padre ad aggiornarli

Dichiarazione degli eventi emessi

Il componente figlio dichiara gli eventi che emette con defineEmits.

<script setup>
const emit = defineEmits(['increment', 'delete'])
</script>

Emissione di un evento

Chiami la funzione emit per inviare un evento verso l'alto, facoltativamente con un payload.

<script setup>
const emit = defineEmits(['add'])

function handleClick() {
  emit("add", { id: 1, name: "Item" })
}
</script>

<template>
  <button @click="handleClick">Add</button>
</template>

Emissione nell'Options API

Nell'Options API, chiami invece this.$emit.

export default {
  emits: ["save"],
  methods: {
    onSave() {
      this.$emit("save", this.formData)
    }
  }
}

Ascolto degli eventi nel componente padre

Il componente padre ascolta con @event-name e riceve il payload.

<template>
  <TodoItem
    :task="task"
    @delete="removeTask"
    @add="onAdd"
  />
</template>

<script setup>
function onAdd(item) {
  console.log("Added:", item.name)
}
</script>

Verifica rapida

Verifichi la propria comprensione di props ed eventi.

Riepilogo: props ed eventi

Ha imparato come comunicano i componenti:

  • defineProps dichiara le props con tipi e valori predefiniti
  • Le props fluiscono verso il basso e sono di sola lettura
  • defineEmits dichiara gli eventi
  • emit("name", payload) invia eventi verso l'alto
  • Il componente padre ascolta con @event

Prossimo argomento: slot e slot con scope.

Domande Frequenti

La lezione «Props ed eventi personalizzati» è gratuita?

Sì — il testo completo di «Props ed eventi personalizzati» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Vue Academy, passa a CoddyKit PRO. Il corso Vue Academy include 3 lezioni in totale.

Cosa imparerò in «Props ed eventi personalizzati»?

Trasmetta i dati verso il basso con le props ed emetta eventi verso i componenti genitori. Eserciti Vue Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Vue Academy?

Non è richiesta alcuna esperienza precedente. Vue Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 3.

Quanto tempo richiede la lezione «Props ed eventi personalizzati»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Vue Academy?

Sì. Ogni lezione Vue Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Creazione e registrazione dei componenti
  2. Props ed eventi personalizzati
  3. Slot e slot con ambito
← Torna a Vue Academy