Maison > développement back-end > tutoriel php > Communication des composants Vue : injection de dépendances à l'aide de provide/inject

Communication des composants Vue : injection de dépendances à l'aide de provide/inject

PHPz
Libérer: 2023-07-07 13:06:02
original
1143 Les gens l'ont consulté

Communication des composants Vue : utilisez provide/inject pour l'injection de dépendances

Dans le développement de Vue, la communication entre les composants est une exigence importante et courante. Vue offre une variété de façons pour les composants de communiquer, dont l'une est l'injection de dépendances de composants à l'aide de provide/inject.

provide et inject sont deux options liées dans Vue. Elles peuvent être utilisées pour fournir des données ou des méthodes dans les composants parents et les injecter dans les composants enfants. Par rapport à d’autres méthodes de communication de composants, la méthode Provide/Inject présente des caractéristiques et des avantages uniques.

Tout d'abord, lors de l'utilisation de provide/inject pour l'injection de dépendances, les données ou méthodes sont fournies dans le composant parent et injectées dans le composant enfant. Cela signifie que la communication des composants sur plusieurs niveaux devient plus simple et plus pratique. Nous n'avons pas besoin de transmettre les données via les accessoires couche par couche, mais de fournir des données aux sous-composants via provide, puis d'obtenir les données dans le sous-composant via inject.

Deuxièmement, provide/inject est une API de niveau relativement bas, qui peut fournir un moyen plus flexible de communication entre les composants. Grâce à provide/inject, nous pouvons fournir tout type de données ou de méthodes dans le composant parent, y compris des objets, des fonctions et même des instances. Cela nous permet de partager plus librement des données et des méthodes entre les composants, plutôt que de simples accessoires et émissions.

Ensuite, regardons un exemple d'injection de dépendances à l'aide de provide/inject.

Supposons que nous ayons un composant parent App.vue et un composant enfant Child.vue. Nous devons utiliser une donnée et une méthode dans le composant parent dans le composant enfant.

<!-- App.vue -->
<template>
  <div>
    <child></child>
  </div>
</template>
<script>
import Child from './Child.vue';

export default {
  components: {
    Child
  },
  data() {
    return {
      message: 'Hello, Vue!'
    };
  },
  methods: {
    showMessage() {
      alert(this.message);
    }
  },
  provide() {
    return {
      message: this.message,
      showMessage: this.showMessage
    };
  }
}
</script>
Copier après la connexion
<!-- Child.vue -->
<template>
  <div>
    <button @click="showMessage">Show Message</button>
  </div>
</template>
<script>
export default {
  inject: ['message', 'showMessage']
}
</script>
Copier après la connexion

Dans l'exemple ci-dessus, nous fournissons les propriétés message et showMessage au composant enfant via la méthode provide. Dans le sous-composant, nous injectons ces deux propriétés via l'option inject, puis elles peuvent être utilisées directement dans le sous-composant.

Dans le composant enfant Child.vue, nous écoutons l'événement click de l'élément

Étiquettes associées:
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