Sobes.tech
Middle

Come passare dati o metodi da un componente figlio a uno genitore in Vue?

sobes.tech AI

Risposta dell'AI

In Vue.js, il meccanismo di eventi viene generalmente utilizzato per trasmettere dati o chiamare metodi dal componente figlio a quello genitore.

Il componente figlio può inviare un evento con i dati necessari usando $emit, e il componente genitore ascolta questo evento e reagisce di conseguenza.

Esempio:

<!-- Componente genitore -->
<template>
  <ChildComponent @custom-event="handleCustomEvent" />
</template>

<script>
import ChildComponent from './ChildComponent.vue';

export default {
  components: { ChildComponent },
  methods: {
    handleCustomEvent(payload) {
      console.log('Dati dal figlio:', payload);
    }
  }
}
</script>

<!-- Componente figlio -->
<template>
  <button @click="sendData">Invia dati al genitore</button>
</template>

<script>
export default {
  methods: {
    sendData() {
      this.$emit('custom-event', { message: 'Ciao, genitore!' });
    }
  }
}
</script>

In questo modo, il componente figlio non chiama direttamente i metodi del genitore, ma segnala un evento, e il genitore decide cosa farne. Questo supporta il principio di flusso di dati unidirezionale e semplifica la gestione dello stato.