Vue.js - Comment appeler la méthode d'un autre composant
Je suis en utilisant Vue.Js v2. Je veux l'appeler component1->c1method dans component2->c2method pour récupérer les données après la soumission.
Vue.component('component1', {
methods: {
c1method: function(){
alert('this is c1method')
},
}
})
Vue.component('component2', {
methods: {
c2method: function(){
component('component1').c1method()//like this
},
}
})
Vous devez vous connecter pour publier un commentaire.
Les docs de remédier à cette situation
https://vuejs.org/v2/guide/components.html#Non-Parent-Child-Communication
Si vos composants ont le même parent, vous pouvez émettre un événement que le parent écoute. Puis avec l'
ref
ensemble de propriétés, vous pouvez appeler lac1method
de la mère.https://vuejs.org/v2/guide/components.html#Child-Component-Refs
Pour les non-relation parent-enfant, alors c'est le même que celui. Appel d'une méthode, apparemment n'importe quelle méthode d'un composant à partir de n'importe quel autre composant. Il suffit d'ajouter une
$on
fonction de la$root
instance et d'appel se former tout autre composant accéder à la$root
et de l'appel de$emit
fonction.Sur la Première composante
et dans le second composant appeler le
$emit
fonction dans$root
Il agit plus comme un support. Référence ici
https://stackoverflow.com/a/50343039/6090215
$on
de la fonction et de nommer l'événement et quelle fonction il déclenche, et vous pouvez déclencher l'événement à l'aide de$emit
la fonction et de l'appelant nom de l'événement. ce que j'ai fait était de créer un événement de bus sur l'instance racine de Vue à l'aide de$root
et maintenant je peut déclencher l'événement à partir de n'importe quel enfant de l'instance. En savoir plus sur ce ici => vuejs.org/v2/api/#Instance-Methods-EventsEssayer.