Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

694
Vistas
Vue3 - Comunicación entre dos componentes niños

Con Vue 3, tengo la siguiente estructura de componentes: diagrama

Como puede ver, ChildA puede comunicarse con ChildB y ChildB debe poder cambiar su estado en consecuencia.

Con Vue 2, pude enviar un evento en ChildA :

 this.$root.$emit('new-message', data)

Y luego manejarlo en ChildB :

 this.$root.$on('new-message', (data) => { this.state = data })

Pero desde Vue 3, se han eliminado $on , $once y $off . ¿Cómo puedo lograr esta comunicación en Vue 3?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si tiene un atributo de datos, en este ejemplo simplemente llamado data , entonces puede usar reactive para crear una tienda simple, que luego puede ser importada por ambos componentes hermanos (en este ejemplo, Componente A y B)

 // store.js import { reactive } from 'vue' export const store = reactive({ data: 'New Message', setData(something) { this.data = something; }, })
 <!-- ComponentA.vue --> <script> import { store } from './store.js' export default { data() { return { store } } } </script> <template>From A: {{ store.data }}</template>

Y

 <!-- ComponentB.vue --> <script> import { store } from './store.js' export default { data() { return { store } }, watch: { // If you need to trigger an event on change, then: 'store.data'(newData, oldData) { console.log('Data Changed', { newData, oldData }); } }, } </script> <template>From B: {{ store.data }}</template>

Cuando el estado en la tienda se actualice, los cambios se reflejarán en todos los componentes secundarios que lo utilicen. Esto debería ser más simple que el patrón $emit de Vue 2, ya que no necesita administrar los eventos de seguimiento a través del árbol de componentes.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda