75 votes

Est-il possible de déclencher la méthode des composantes du parent dans VueJS?

J'ai été la recherche d'informations et ont seulement trouvé un moyen pour émettre des événements de l'enfant qui peut alors être écouté pour en composants parent. Est-il possible d'appeler un enfant de la méthode du composant parent?

132voto

donMateo Points 1309

Yup, il suffit de trouver votre composant dans les enfants de tableau, ou s'en emparer par attribut ref, et l'appel de la méthode :) réf doc

supposons que votre enfant composant a la méthode x. Selon la documentation:

<div id="parent">
  <user-profile ref="profile"></user-profile>
</div>

var child = this.$refs.profile;
child.x();

28voto

bformet Points 5822

Je pense qu'un bon motif pour cet émet un événement du composant parent et l'écouter dans le composant enfant, à l'aide d'un Bus d'Événement.

Cela pourrait être:

dans main.js

export const bus = new Vue()

dans le Parent.vue:

import {bus} from 'path/to/main'

// Where you wanna call the child's method:
bus.$emit('customEventName', optionalParameter)

dans l'Enfant.vue:

import {bus} from 'path/to/main'

// Add this to the mounted() method in your component options object:
bus.$on('customEventName', this.methodYouWannaCall)

-4voto

Pratik Khadtale Points 17

Voici un exemple simple d'un

this.$children[indexOfComponent].childsMethodName();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X