Maison interface Web Voir.js Comment utiliser provide et inject pour la communication de composants inter-niveaux dans Vue ?

Comment utiliser provide et inject pour la communication de composants inter-niveaux dans Vue ?

Jul 18, 2023 pm 07:03 PM
vue provide inject

Comment utiliser provide et inject pour la communication de composants inter-niveaux dans Vue ?

Dans le développement de Vue, la communication des composants à plusieurs niveaux est une exigence courante. Vue fournit un moyen simple et efficace d'établir une communication entre composants à plusieurs niveaux, notamment via la fourniture et l'injection. Cet article expliquera comment utiliser provide et inject dans Vue pour réaliser une communication de composants à plusieurs niveaux et joindra des exemples de code correspondants.

Tout d’abord, nous devons comprendre les concepts de base de fournir et d’injecter.

provide et inject sont un moyen spécial dans Vue permettant aux composants parents de transmettre des données aux composants descendants. Fournissez des données en utilisant provide dans le composant parent, puis utilisez inject dans le composant descendant pour obtenir ces données. L'option

provide peut être un objet ou une fonction. La clé de l'objet sera utilisée comme nom de propriété lors de l'utilisation d'inject dans le composant descendant, et la valeur sera utilisée comme données à transmettre. Si l'option provide est une fonction, un objet peut être renvoyé à l'intérieur de la fonction et la valeur clé de cet objet sera utilisée comme données fournies aux composants descendants.

Dans les composants descendants, vous pouvez utiliser l'option inject pour injecter les données fournies par le composant parent. L'option inject peut être un tableau ou un objet. Si l'option inject est un tableau, les éléments du tableau seront utilisés comme noms d'attributs à obtenir. Si l'option inject est un objet, la clé de l'objet sera utilisée comme nom de propriété et la valeur sera la valeur par défaut fournie.

Ci-dessous, nous utilisons un exemple pour montrer comment utiliser provide et inject pour la communication de composants entre niveaux.

Dans le composant parent, nous fournissons une donnée appelée message que le composant descendant doit utiliser :

<template>
  <div>
    <ChildComponent></ChildComponent>
  </div>
</template>

<script>
import ChildComponent from './ChildComponent.vue';

export default {
  components: {
    ChildComponent,
  },
  provide: {
    message: 'Hello, World!',
  },
};
</script>
Copier après la connexion

Dans le composant enfant, nous utilisons l'option inject pour obtenir les données fournies par le composant parent et les utiliser dans le modèle :

<template>
  <div>
    <p>{{ injectedMessage }}</p>
  </div>
</template>

<script>
export default {
  inject: ['message'], // 这里使用数组形式注入要获取的数据
  computed: {
    injectedMessage() {
      return this.message;
    },
  },
};
</script>
Copier après la connexion

Grâce au code ci-dessus, nous avons implémenté avec succès le composant parent pour transmettre les données au composant enfant, et obtenu et affiché les données dans le composant enfant.

En plus de l'option inject sous forme de tableau, nous pouvons également utiliser l'option inject sous forme d'objet pour communiquer entre les composants de niveau via provide et inject. Pour l'option injecter sous forme d'objet, la clé de chaque membre sera utilisée comme nom d'attribut et la valeur sera utilisée comme valeur par défaut de l'attribut.

<template>
  <div>
    <GrandChildComponent></GrandChildComponent>
  </div>
</template>

<script>
import GrandChildComponent from './GrandChildComponent.vue';

export default {
  components: {
    GrandChildComponent,
  },
  provide() {
    return {
      greeting: this.greetings, // 将父组件中的greetings数据提供给后代组件使用
    };
  },
  data() {
    return {
      greetings: 'Hello, World!', // 作为提供给后代组件的数据
    };
  },
};
</script>
Copier après la connexion

Dans le composant petit-fils, nous utilisons l'option inject pour obtenir les données fournies par le composant parent et les utilisons dans le modèle :

<template>
  <div>
    <p>{{ greeting }}</p>
  </div>
</template>

<script>
export default {
  inject: {
    greeting: {
      default: 'Hi, there!', // 设置greeting的默认值
    },
  },
};
</script>
Copier après la connexion

Avec le code ci-dessus, nous avons implémenté avec succès le composant parent pour transmettre les données au petit-fils composant et utilisez-le dans le composant petit-enfant. Les données sont obtenues et affichées dans le composant.

Résumé :

Grâce à la fourniture et à l'injection, nous pouvons facilement réaliser une communication entre composants à plusieurs niveaux. Le composant parent fournit des données via l'option provide et le composant descendant obtient les données via l'option inject. Nous pouvons injecter des données en utilisant l'option inject sous forme de tableau ou d'objet. Lorsque vous utilisez provide et inject pour la communication de composants entre niveaux, vous devez faire attention aux conflits de noms et éviter d'utiliser des données réactives lors de l'utilisation de provide.

J'espère que cet article pourra vous aider à comprendre comment utiliser provide et inject pour la communication de composants inter-niveaux dans Vue, et à l'appliquer au développement réel.

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle est la méthode de conversion des chaînes Vue.js en objets? Quelle est la méthode de conversion des chaînes Vue.js en objets? Apr 07, 2025 pm 09:18 PM

L'utilisation de la chaîne JSON.Parse () à l'objet est la plus sûre et la plus efficace: assurez-vous que les chaînes sont conformes aux spécifications JSON et évitez les erreurs courantes. Utilisez Try ... Catch pour gérer les exceptions pour améliorer la robustesse du code. Évitez d'utiliser la méthode EVAL (), qui présente des risques de sécurité. Pour les énormes cordes JSON, l'analyse de fouet ou l'analyse asynchrone peut être envisagée pour optimiser les performances.

Vue.js vs react: Considérations spécifiques au projet Vue.js vs react: Considérations spécifiques au projet Apr 09, 2025 am 12:01 AM

Vue.js convient aux projets de petite et moyenne taille et aux itérations rapides, tandis que React convient aux applications grandes et complexes. 1) Vue.js est facile à utiliser et convient aux situations où l'équipe est insuffisante ou l'échelle du projet est petite. 2) React a un écosystème plus riche et convient aux projets avec des performances élevées et des besoins fonctionnels complexes.

Vue.js est-il difficile à apprendre? Vue.js est-il difficile à apprendre? Apr 04, 2025 am 12:02 AM

Vue.js n'est pas difficile à apprendre, en particulier pour les développeurs avec une fondation JavaScript. 1) Sa conception progressive et son système réactif simplifient le processus de développement. 2) Le développement basé sur les composants rend la gestion du code plus efficace. 3) Les exemples d'utilisation montrent une utilisation de base et avancée. 4) Les erreurs courantes peuvent être déboguées via Vuedevtools. 5) L'optimisation des performances et les meilleures pratiques, telles que l'utilisation des attributs V-IF / V et clés, peuvent améliorer l'efficacité de l'application.

Comment utiliser Bootstrap en Vue Comment utiliser Bootstrap en Vue Apr 07, 2025 pm 11:33 PM

L'utilisation de bootstrap dans vue.js est divisée en cinq étapes: installer bootstrap. Importer un bootstrap dans main.js. Utilisez le composant bootstrap directement dans le modèle. Facultatif: style personnalisé. Facultatif: utilisez des plug-ins.

Vue est-elle utilisée pour le frontend ou le backend? Vue est-elle utilisée pour le frontend ou le backend? Apr 03, 2025 am 12:07 AM

Vue.js est principalement utilisé pour le développement frontal. 1) Il s'agit d'un cadre JavaScript léger et flexible axé sur la construction d'interfaces utilisateur et d'applications à une seule page. 2) Le cœur de Vue.js est son système de données réactif, et la vue est automatiquement mise à jour lorsque les données changent. 3) Il prend en charge le développement des composants et l'interface utilisateur peut être divisée en composants indépendants et réutilisables.

Comment ajouter des fonctions aux boutons pour Vue Comment ajouter des fonctions aux boutons pour Vue Apr 08, 2025 am 08:51 AM

Vous pouvez ajouter une fonction au bouton VUE en liant le bouton dans le modèle HTML à une méthode. Définissez la logique de la fonction de méthode et d'écriture dans l'instance Vue.

Comment utiliser Watch in Vue Comment utiliser Watch in Vue Apr 07, 2025 pm 11:36 PM

L'option Watch dans Vue.js permet aux développeurs d'écouter des modifications de données spécifiques. Lorsque les données changent, regardez déclenche une fonction de rappel pour effectuer des vues de mise à jour ou d'autres tâches. Ses options de configuration incluent immédiatement, qui spécifie s'il faut exécuter un rappel immédiatement, et profond, ce qui spécifie s'il faut écouter récursivement les modifications des objets ou des tableaux.

Comment référencer le fichier JS avec Vue.js Comment référencer le fichier JS avec Vue.js Apr 07, 2025 pm 11:27 PM

Il existe trois façons de se référer aux fichiers JS dans Vue.js: spécifiez directement le chemin à l'aide du & lt; script & gt; étiqueter;; importation dynamique à l'aide du crochet de cycle de vie monté (); et l'importation via la bibliothèque de gestion de l'État Vuex.

See all articles