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

2.5K
Vistas
Vue.js - Cómo llamar al método desde otro componente

Estoy usando Vue.Js v2. Quiero llamar a componente1->c1método en componente2->c2método para recargar datos después de enviar.

 Vue.component('component1', { methods: { c1method: function(){ alert('this is c1method') }, } }) Vue.component('component2', { methods: { c2method: function(){ component('component1').c1method()//like this }, } })
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Para la relación que no es padre-hijo, entonces esto es lo mismo que este. Llame a un método, aparentemente a cualquier método de un componente de cualquier otro componente. Simplemente agregue una función $on a la instancia de $root y llame desde cualquier otro componente que acceda a $root y llame a la función $emit .

En primer componente

    ....
    montado() {
        this.$root.$on('componente1', () => {
            // tu codigo va aqui
            este método.c1()
        }
    }

y en el segundo componente llame a la función $emit en $root

    ...
    c2método: función(){
     this.$root.$emit('component1') //me gusta esto
    },

Actúa más como un enchufe. Referencia aquí

https://stackoverflow.com/a/50343039/6090215

over 4 years ago · Santiago Trujillo Denunciar

0

// Component A Vue.component('A', { created() { this.$root.$refs.A = this; }, methods: { foo: function() { alert('this is A.foo'); } } }); // Component B Vue.component('B', { methods: { bar: function() { this.$root.$refs.A.foo(); } } });
over 4 years ago · Santiago Trujillo Denunciar

0

No hay necesidad de soluciones hacky.
En vuejs podemos crear eventos que se pueden escuchar globalmente.
Con esta función, siempre que queramos llamar a nuestra amada función, simplemente emitimos este evento.
Ahora, solo escuchamos este evento todo el tiempo desde el componente. cada vez que ocurra este evento global, podemos ejecutar nuestro método que queremos llamar.

Es bastante simple:

  1. vas a main.js, antes de crear la instancia de vue, escribe esto:
 export const eventBus = new Vue(); // added line new Vue({ ... ... ... render: h => h(App) }).$mount('#app');
  1. En cualquier lugar que queramos activar la función de destino, no la activamos, simplemente emitimos este evento:
 eventBus.$emit('fireMethod');
  1. Ahora, en nuestro componente que tiene la función de destino, siempre escuchamos este evento:
 created() { eventBus.$on('fireMethod', () => { this.myBelovedMethod(); }) }

No olvide importar eventBus en la parte superior.

 import {eventBus} from "path/to/main.js";

eso es todo, pocas líneas de código, sin trucos, todo el poder de vuejs.

over 4 years ago · Santiago Trujillo 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