Sobes.tech
Middle

¿Cómo pasar datos o métodos desde un componente hijo a uno padre en Vue?

sobes.tech AI

Respuesta de la IA

En Vue.js, el mecanismo de eventos se utiliza generalmente para transmitir datos o llamar a métodos desde un componente hijo hacia un componente padre.

El componente hijo puede enviar un evento con los datos necesarios usando $emit, y el componente padre escucha ese evento y responde a él.

Ejemplo:

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

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

export default {
  components: { ChildComponent },
  methods: {
    handleCustomEvent(payload) {
      console.log('Datos del hijo:', payload);
    }
  }
}
</script>

<!-- Componente hijo -->
<template>
  <button @click="sendData">Enviar datos al padre</button>
</template>

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

De esta manera, el componente hijo no llama directamente a los métodos del padre, sino que informa sobre un evento, y el padre decide qué hacer con ello. Esto mantiene el principio de flujo de datos unidireccional y simplifica la gestión del estado.