Table des matières
Overview
Utilisation de provide/inject
Le composant parent fournit des données
Le composant enfant fournit des données
Le processus d'implémentation de provide/inject
Résumé
Maison interface Web Voir.js Premiers pas avec VUE3 : utilisation de provide/inject pour partager entre les composants

Premiers pas avec VUE3 : utilisation de provide/inject pour partager entre les composants

Jun 16, 2023 am 08:34 AM
- vue - provide - inject

VUE est un framework front-end moderne présentant les avantages d'une grande facilité d'utilisation, d'une grande flexibilité et d'excellentes performances. Il est de plus en plus populaire et privilégié par les développeurs front-end. La version VUE3 apporte de meilleures performances, une meilleure conception architecturale et est plus conviviale. VUE3 fournit une nouvelle façon de partager des données entre composants : fournir/injecter. Cet article présentera en détail le processus d'utilisation et de mise en œuvre de provide/inject.

Overview

provide/inject est une méthode officiellement recommandée par VUE3 pour partager des données entre composants. Dans VUE2, nous implémentons souvent la communication de données entre les composants via props/$emit et Vuex. La plus grande caractéristique de provide/inject est qu'il implémente le partage de données de manière plus implicite, rendant le code plus lisible et maintenable.

Utilisation de provide/inject

L'utilisation de provide/inject est très simple, voici quelques exemples :

Le composant parent fournit des données

<template>
  <child-component />
</template>

<script>
import { provide } from 'vue'
import ChildComponent from './ChildComponent.vue'

export default {
  components: { ChildComponent },
  setup() {
    provide('message', 'Hello from parent')
  }
}
</script>
Copier après la connexion

Dans le composant parent, nous fournissons un message nommé message via la méthode provide data et définissez sa valeur sur « Bonjour du parent ». Ensuite, nous pouvons utiliser inject dans le sous-composant pour obtenir ces données :

<template>
  <div>{{ message }}</div>
</template>

<script>
import { inject } from 'vue'

export default {
  setup() {
    const message = inject('message')
    return { message }
  }
}
</script>
Copier après la connexion
Copier après la connexion

Dans le sous-composant, nous utilisons la méthode inject pour obtenir les données nommées message. À ce stade, nous pouvons utiliser ces données dans le modèle.

Le composant enfant fournit des données

<template>
  <child-component />
</template>

<script>
import { ref } from 'vue'
import ChildComponent from './ChildComponent.vue'

export default {
  components: { ChildComponent },
  setup() {
    const message = ref('Hello from parent')
    return { message }
  },
  provide: {
    message: this.message
  }
}
</script>
Copier après la connexion

Dans cet exemple, nous définissons une donnée réactive nommée message dans le composant parent et définissons sa valeur sur « Bonjour du parent ». Nous fournissons ensuite ces données au composant enfant via la méthode provide. Dans le composant enfant, nous obtenons le message via la méthode inject et l'utilisons dans le modèle :

<template>
  <div>{{ message }}</div>
</template>

<script>
import { inject } from 'vue'

export default {
  setup() {
    const message = inject('message')
    return { message }
  }
}
</script>
Copier après la connexion
Copier après la connexion

Notez que les données du message que nous définissons ici sont réactives.

Le processus d'implémentation de provide/inject

L'implémentation de provide/inject repose sur le nouveau système de réponse de VUE3. Dans VUE3, provide/inject s'appuie sur provideParent / injectSetupRef pour fonctionner. La fonction provideParent est similaire à la méthode provide, recevant à la fois le nom de clé et la valeur d'une donnée, tandis que injectSetupRef est utilisée pour obtenir des données du composant parent. Le processus d'implémentation spécifique est le suivant :

// provide函数
export function provide(key, value) {
  const vm = getCurrentInstance();
  if (!vm) {
    console.warn(`provide() can only be used inside setup().`);
  } else {
    let provides  = vm.provides;
    const parent = vm.parent;
    if (provides === EMPTY_OBJ) provides = vm.provides = Object.create(parent.provides);
    provides[key] = value;
  }
}

// inject函数
export function inject(key, defaultValue) {
  const vm = getCurrentInstance();
  if (vm) {
    const provides = vm.parent.provides;
    if (key in provides) {
      return provides[key];
    } else if (arguments.length > 1) {
      return defaultValue;
    } else {
      console.warn(`injection "${String(key)}" not found.`);
    }
  } else {
    console.warn(`inject() can only be used inside setup() or functional components.`);
  }
}
Copier après la connexion

Dans la fonction provide, nous obtenons l'instance actuelle via la fonction getCurrentInstance et stockons les données fournies sur l'objet Provides de l'instance actuelle. Si l'instance actuelle n'existe pas, cela signifie que la fonction provide n'est pas appelée dans la fonction setup et qu'un message d'avertissement est renvoyé.

Dans la fonction inject, nous obtenons également l'instance actuelle via la fonction getCurrentInstance, et obtenons la valeur correspondant à la clé à partir de l'objet Provides de son composant parent. Si la valeur correspondant à la clé n'existe pas, defaultValue est renvoyée. Si l'instance actuelle n'existe pas, cela signifie que la fonction inject n'a pas été appelée dans la fonction de configuration ou le composant fonctionnel, et un message d'avertissement sera renvoyé.

Résumé

Grâce à l'introduction de cet article, nous pouvons savoir que fournir/injecter est une excellente méthode pour partager des données entre les composants VUE3. Il implémente le partage de données de manière plus implicite, rendant le code plus lisible et maintenable. Lors de l'utilisation, veuillez noter que les données fournies sont réactives et peuvent être utilisées dans des composants imbriqués. Dans le même temps, il convient de noter que si les données que nous fournissons n'existent pas dans provide, les paramètres passés dans arguments[1] seront utilisés comme valeur par défaut. À ce stade, vous devez toujours faire attention au type. et la valeur des paramètres.

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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

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)

Premiers pas avec VUE3 : utilisation de provide/inject pour partager entre les composants Premiers pas avec VUE3 : utilisation de provide/inject pour partager entre les composants Jun 16, 2023 am 08:34 AM

VUE est un framework front-end moderne présentant les avantages d’une grande facilité d’utilisation, d’une grande flexibilité et d’excellentes performances. Il est de plus en plus populaire et privilégié par les développeurs front-end. La version VUE3 apporte de meilleures performances, une meilleure conception architecturale et est plus conviviale. VUE3 offre une nouvelle façon de réaliser la fonction de partage de données entre les composants - fournir/injecter. Cet article présentera en détail le processus d'utilisation et de mise en œuvre de provide/inject. Aperçufournir/

Comment utiliser v-on:click.once dans Vue pour réaliser que l'événement n'est déclenché qu'une seule fois Comment utiliser v-on:click.once dans Vue pour réaliser que l'événement n'est déclenché qu'une seule fois Jun 11, 2023 pm 12:52 PM

Vue est un framework JavaScript populaire qui fournit des instructions riches pour implémenter des interfaces utilisateur interactives. Parmi eux, l'instruction de traitement d'événements v-on peut être ajoutée à l'étiquette pour lier une fonction de traitement d'événements. Cependant, nous souhaitons parfois qu'un bouton soit cliqué une seule fois, au lieu de déclencher le gestionnaire d'événements correspondant à chaque fois que vous cliquez dessus. Alors comment utiliser v-on:click.once dans Vue pour se rendre compte que l'événement n'est déclenché qu'une seule fois ? Comment utiliser v-on:click.once dans Vue

Conseils et bonnes pratiques pour utiliser des composants à fichier unique pour implémenter la modularisation des composants dans Vue Conseils et bonnes pratiques pour utiliser des composants à fichier unique pour implémenter la modularisation des composants dans Vue Jun 25, 2023 am 08:12 AM

Vue est un framework JavaScript populaire largement utilisé pour développer des applications monopage et des sites Web dynamiques. Parmi eux, la composantisation et la modularisation sont l'une de ses principales caractéristiques. Vue utilise des composants à fichier unique (SFC) pour implémenter la modularisation des composants et améliorer l'efficacité de l'écriture, de la maintenance et des tests des composants. Cet article présentera des conseils et des bonnes pratiques pour utiliser des composants à fichier unique pour modulariser les composants Vue. Qu'est-ce qu'un composant de fichier unique ? Le composant de fichier unique fait référence à

Explication détaillée des instructions Vue : v-model, v-if, v-for, etc. Explication détaillée des instructions Vue : v-model, v-if, v-for, etc. Jun 09, 2023 pm 04:06 PM

Avec le développement continu de la technologie front-end, le framework front-end est devenu un élément important du développement d'applications Web modernes. Parmi eux, Vue.js, en tant que framework MVVM excellent et léger, est favorisé par les développeurs front-end. La commande Vue.js est un module fonctionnel très important dans le framework Vue.js. Parmi elles, v-model, v-if, v-for et d'autres commandes sont des outils indispensables pour développer des applications Vue.js. Ci-dessous, nous analyserons en détail l’utilisation et la fonction de ces instructions. 1. v-mo

Comment Vue implémente la fonction de téléchargement de fichiers Comment Vue implémente la fonction de téléchargement de fichiers Feb 19, 2024 pm 06:23 PM

Comment implémenter la fonction Upload de vue. Avec le développement d'applications Web, la fonction de téléchargement de fichiers est devenue de plus en plus courante. Vue est un framework JavaScript populaire qui offre un moyen pratique de créer des applications Web modernes. Dans Vue, vous pouvez implémenter la fonction de téléchargement de fichiers en utilisant le composant Upload de Vue. Cet article expliquera comment utiliser Vue pour implémenter la fonction de téléchargement de fichiers et fournira des exemples de code spécifiques. Tout d'abord, installez les dépendances requises dans le projet Vue. Vous pouvez utiliser n

Comment utiliser Vue pour implémenter des effets de nuage de tags Comment utiliser Vue pour implémenter des effets de nuage de tags Sep 20, 2023 pm 03:21 PM

Comment utiliser Vue pour implémenter les effets de nuage de balises Introduction : Le nuage de balises est un effet de page Web courant qui affiche des balises avec différentes tailles de police pour montrer la popularité ou la pertinence des balises. Dans cet article, nous présenterons comment utiliser le framework Vue pour implémenter des effets de nuage de tags et fournirons des exemples de code spécifiques. Étape 1 : Créer un projet Vue Tout d'abord, nous devons créer un projet Vue de base. Vous pouvez utiliser VueCLI pour générer rapidement un squelette de projet. Ouvrez l'outil de ligne de commande et entrez la commande suivante : vuecreate

Vue et Vue-Router : Comment utiliser les informations de routage dans les composants ? Vue et Vue-Router : Comment utiliser les informations de routage dans les composants ? Dec 17, 2023 pm 01:46 PM

Vue et Vue-Router : Comment utiliser les informations de routage dans les composants ? Introduction : Au cours du processus de développement de Vue.js, il est souvent nécessaire d'obtenir et d'utiliser des informations de routage dans les composants, comme l'obtention des paramètres d'URL actuels, le saut entre différentes pages, etc. Vue.js fournit le plug-in Vue-Router pour implémenter les fonctions de routage front-end. Cet article explique comment utiliser Vue-Router dans les composants pour obtenir et utiliser les informations de routage. Introduction à Vue-Router : Vue-Router est Vue

Fonction nextTick dans Vue3 : opérations de traitement après mise à jour du DOM Fonction nextTick dans Vue3 : opérations de traitement après mise à jour du DOM Jun 18, 2023 am 10:06 AM

Vue3 est un framework frontal très populaire récemment. Sa plus grande fonctionnalité est la technologie DOM virtuel, c'est-à-dire que Vue convertira l'arborescence DOM réelle en une arborescence DOM virtuelle, puis la convertira en une arborescence DOM réelle après avoir opéré sur le DOM virtuel. arbre. Cette technologie nous permet d'exploiter le DOM plus efficacement et peut également obtenir de très bonnes performances lorsque le nombre de DOM est important. Cependant, en raison de la particularité de la technologie DOM virtuel, lorsque nous exploitons le DOM, nous ne pouvons parfois pas obtenir immédiatement le dernier DO.

See all articles