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

351
Vistas
¿Cómo llamar a un método desde el componente secundario al principal?

Tengo un componente secundario llamado ZimModel.vue donde creé un método drawGrid() . Necesito llamar a este método en el componente principal ( mainPage.vue ). La idea es llamar a este método una vez que el usuario haya terminado de escribir valores en la entrada (a saber: ancho de la cuadrícula; agregué el evento @input a v-model="inputWidth" ). Es por eso que también uso setTimeout con un retraso de 5 segundos. Sin embargo, no tengo idea de cómo 'enviar' este método al componente principal. Probé con emit pero no creo que tenga ningún sentido. Uso la tienda Vuex en mi aplicación, pero este método en particular está estrictamente relacionado con otros datos y métodos en ZimModel.vue , por lo que no creo que tenga sentido moverlo a Vuex. ¿Hay algún patrón/buena práctica que deba seguir en este caso?

Aquí hay un ejemplo reproducible: https://codesandbox.io/s/vue-2-playground-vuex-drag-and-snap-to-tiles-un6984?file=/src/components/mainPage.vue . Como ejemplo, agregué el método myGreeting() (en mainPage.vue ) para mostrar cómo quiero que funcione mi programa. Necesito reemplazar este método ejemplar con el método target drawGrid() .

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

0

Usar $ref resolverá su problema:

 <ZimModel ref="zimModel" />

Y dentro de tu método:

 triggerDrawing() { clearTimeout(this.timer); // this.timer = setTimeout(this.myGreeting, 5000); this.$refs.zimModel.drawGrid(); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Si bien la ref de uso debería funcionar, debe considerar subcontratar el método a un .js e importar el método en los archivos que lo necesita. Esto es especialmente recomendable cuando se utiliza un método en varios componentes.

En el nuevo archivo:

 export function drawGrid() { // Your code }

En sus componentes

 </template> <script> import { drawGrid } from 'relativePath' // using {} you can import a single function or few select to improve effectiveness ...

Entonces puedes simplemente llamar a la función.

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