Vue js emit: la guía completa para comunicar componentes

Vue js emit: la guía completa para comunicar componentes

Vue.js es un framework JavaScript muy usado para construir aplicaciones web interactivas. Una de sus funcionalidades más potentes es vue js emit, que permite a un componente enviar eventos hacia su padre. En esta guía detallada vas a ver cómo usar vue js emit en tu código Vue.js.

¿Qué es Vue js emit?

$emit es un método de comunicación entre componentes de Vue.js. Te permite enviar eventos del hijo hacia el padre, es decir, disparar una acción en un componente padre desde un componente hijo.

¿Por qué usarlo?

Recurrir a emit resulta útil cuando necesitas hacer subir información o eventos de un componente hijo al componente padre. Por ejemplo, si tienes un formulario en un componente hijo y quieres enviar sus datos al padre para procesarlos, puedes hacerlo con emit.

¿Cómo se usa Vue js emit?

Usar emit es muy sencillo. Primero declaras un evento en el componente hijo con el método $emit(). Aquí tienes un ejemplo:

javascript
this.$emit('eventName', data)

eventName es el nombre del evento y data son los datos que quieres enviar con él.

Después escuchas ese evento en el componente padre con la directiva v-on:

javascript
<ChildComponent v-on:eventName="eventHandler"/>

eventHandler es el método que se ejecuta cuando se dispara el evento.

Ejemplo completo de uso de $emit

Este es un ejemplo completo de cómo usar emit en tu código Vue.js:

javascript
<template>
  <div>
    <ChildComponent @eventName="eventHandler"/>
  </div>
</template>

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

export default {
  components: {
    ChildComponent
  },
  methods: {
    eventHandler (data) {
      console.log(data)
    }
  }
}
</script>

// ChildComponent.vue
<template>
  <button @click="sendData">Envoyer les données</button>
</template>

<script>
export default {
    methods: {
        sendData () {
            this.$emit('eventName', 'Données envoyées depuis le composant enfant')
        }
    }
}
</script>

En este código tenemos un componente padre que incluye un componente hijo `ChildComponent`. Al pulsar el botón del componente hijo se dispara el evento `eventName` con los datos `‘Données envoyées depuis le composant enfant‘`. El componente padre escucha ese evento con la directiva `@eventName` y llama al método `eventHandler` cuando se dispara.

Conclusión

En definitiva, `emit` es una funcionalidad potente de Vue.js que te permite hacer subir eventos de un componente hijo a un componente padre. Es fácil de usar y se convierte en una herramienta valiosa para la comunicación entre componentes de tu aplicación. Con esta guía completa deberías poder usar `emit` con confianza en tu código Vue.js.

JavaScriptVue.js

Damien Flandrin Desarrollador web desde 2010, creador de Gekkode y de Email Impact. Cada artículo se prueba en un proyecto real antes de publicarse. Contacto
Newsletter

Las nuevas pruebas, tutoriales y proyectos, por correo.

Pruebas reproducibles, código versionado, resultados fechados. Nunca spam.