Les méthodes entre les composants de vue s'appellent

WBOY
Libérer: 2023-05-11 09:14:06
original
5276 Les gens l'ont consulté

Dans le développement basé sur les composants Vue, les composants peuvent être imbriqués les uns dans les autres, et les composants avec des structures différentes doivent souvent s'appeler les méthodes les uns des autres. C'est-à-dire que vous devez implémenter une méthode dans un composant pour appeler une méthode dans un autre composant. Ensuite, présentons comment les méthodes entre les composants Vue s'appellent.

1. Grâce aux composants parents

Dans le développement basé sur les composants Vue, chaque composant a son propre composant parent et les composants peuvent s'appeler. Nous pouvons définir des méthodes dans le composant parent, puis appeler la méthode dans le composant parent via $parent dans le composant enfant.

Définissez d'abord une méthode dans le composant parent :

methods:{
  changeMsg:function(){
     this.msg='hello world';
  }
}
Copier après la connexion

Ensuite, utilisez this.$parent.changeMsg() dans le composant enfant pour appeler la méthode dans le composant parent.

2. Référence via des composants

Dans le développement basé sur les composants de Vue, les sous-composants peuvent introduire d'autres composants via l'importation et appeler directement la méthode d'introduction des composants dans le sous-composant.

En supposant que l'on veuille appeler la méthode du composant B dans le composant A, il faut d'abord introduire le composant B dans le composant A, comme indiqué ci-dessous :

import B from '../B.vue'
export default {
  components: {
    B
  },...

}
Copier après la connexion

Puis dans le composant A Vous pouvez utiliser directement this.$refs pour obtenir l'instance du composant B, puis appeler la méthode dans le composant B.

this.$refs.b.test();
Copier après la connexion

3. Grâce à Vuex

Vuex est une bibliothèque de gestion d'état dans Vue qui peut facilement gérer l'état global. Nous pouvons définir une méthode globale dans Vuex et appeler la méthode globale Vuex via $store.dispatch dans le composant.

Nous devons d'abord définir une méthode dans Vuex :

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const store = new Vuex.Store({
  state: {
    msg:'hello',
  },
  mutations: {
    changeMsg(state){
      state.msg='hello world';
    }
  },
  actions:{
    changeMsg({commit}){
      commit('changeMsg');
    }
  }
})

export default store;
Copier après la connexion

Ensuite, utilisez le code suivant dans le composant pour appeler la méthode dans Vuex :

this.$store.dispatch('changeMsg');
Copier après la connexion
#🎜🎜 # 4. Grâce au bus d'événements

Dans Vue, nous pouvons établir une communication entre les composants via le bus d'événements. Cette approche distribue les événements à différentes parties de l'application et nous permet de transmettre des données entre les composants.

Nous pouvons créer une instance Vue vide en tant que bus d'événements, puis appeler le bus d'événements dans le composant pour déclencher des événements.

Créez d'abord une instance Vue dans main.js comme bus d'événements :

Vue.prototype.$bus = new Vue()
Copier après la connexion

Ensuite, vous pouvez utiliser le code suivant dans le composant pour déclencher des événements :

 this.$bus.$emit('EVENT_NAME', data)
Copier après la connexion
#🎜 🎜#Enfin, vous pouvez utiliser le code suivant dans un autre composant pour recevoir des événements :

this.$bus.$on('EVENT_NAME', data => {
    // handle event
})
Copier après la connexion

Grâce aux quatre méthodes ci-dessus, nous pouvons implémenter des méthodes entre les composants Vue pour s'appeler. Dans les applications réelles, nous pouvons choisir la méthode qui correspond le mieux à nos besoins pour implémenter les appels de méthode entre les composants.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!