Table des matières
Pourquoi utiliser des hocs?
Comment créer un hoc à Vue
Cas d'utilisation courants
Hocs vs composibles vs mixins
Réflexions finales
Maison interface Web Voir.js Que sont les composants d'ordre supérieur (HOC) en Vue?

Que sont les composants d'ordre supérieur (HOC) en Vue?

Jul 31, 2025 am 08:30 AM

Les hocs en Vue sont des fonctions qui prennent un composant et renvoient une version améliorée, permettant à la réutilisation de la logique comme les états de chargement ou les vérifications des autheurs; 1. Ils aident à réutiliser la logique entre les composants, 2. Gardez les composants propres en résumé la configuration, 3. Ajouter une fonctionnalité sans modifications internes; Cependant, dans le Vue 3 moderne, les composants sont préférés en raison d'une meilleure flexibilité et d'un risque plus faible de problèmes comme l'enfer en wrapper ou les collisions de noms, ce qui en fait une solution plus idiomatique et maintenable pour la logique partagée.

Que sont les composants d'ordre supérieur (HOC) en Vue?

Les composants d'ordre supérieur (HOC) sont un modèle dans Vue.js (et réagi) pour réutiliser la logique des composants. Bien que les HOC soient plus souvent associés à React, le concept peut être appliqué dans Vue - bien que l'écosystème de Vue offre des moyens plus idiomatiques (comme les composiables et les mixins) pour atteindre des objectifs similaires.

Que sont les composants d'ordre supérieur (HOC) en Vue?

Dans Vue, un composant d'ordre supérieur est essentiellement une fonction qui prend un composant en entrée et renvoie un nouveau composant amélioré avec des accessoires, un comportement ou une logique supplémentaires.

Pourquoi utiliser des hocs?

Les hocs vous aident:

Que sont les composants d'ordre supérieur (HOC) en Vue?
  • Réutiliser la logique sur plusieurs composants (par exemple, la récupération des données, les vérifications d'authentification).
  • Gardez les composants propres en abstraction de la logique de configuration du complexe.
  • Enveloppez les composants avec des fonctionnalités supplémentaires sans modifier leurs internes.

Même si Vue 3 encourage à utiliser des composants (via l'API de composition), la compréhension des HOC est utile, en particulier lorsque vous travaillez avec des bases de code plus anciennes ou lorsque vous devez améliorer dynamiquement les composants.


Comment créer un hoc à Vue

Voici un exemple de base de HOC dans Vue 3 (Utilisation des options Style API pour plus de clarté):

Que sont les composants d'ordre supérieur (HOC) en Vue?
 // hoc / withloking.js
Fonction d'exportation avec chargement (enveloppedComponent) {
  retour {
    accessoires: enveloppedComponent.props || [],
    données() {
      retour {
        Isloading: vrai,
      };
    },
    asynchronisé monté () {
      // Simuler le chargement
      attendre une nouvelle promesse (résolution => setTimeout (résolution, 1000));
      this.isloking = false;
    },
    rendre() {
      // transmets tous les accessoires d'origine et ajouter l'iséléchargement
      const props = {... this. $ props, IsoLing: this.isloking};
      Renvoyez ce
        ? h ('div', 'Chargement ...')
        : h (enveloppedComponent, accessoires, this. $ slots);
    }
  };
}

Utilisez-le maintenant dans un composant:

 import {withloking} de './hoc/withloading';
Importez UserData depuis './components/userdata.vue';

const userdatawithloading = withloking (userData);

Exporter par défaut {
  Composants: {
    Userdatawithloading
  }
};

Cela enveloppe UserData avec un état de chargement - affichant automatiquement un message de chargement pendant 1 seconde avant de rendre le composant réel.


Cas d'utilisation courants

  • Gardiens d'authentification : enveloppez un composant d'itinéraire pour vérifier si l'utilisateur est connecté.
  • Remplacement des données : injectez les données asynchrones avant le rendu.
  • Journalisation ou analyse : suivi lorsqu'un composant monte.
  • Vérification de l'autorisation : Désactiver ou masquer les composants en fonction des rôles utilisateur.

Exemple: withAuth hoc

 Fonction WithAuth (enveloppedComponent, requiredRole = null) {
  retour {
    installation() {
      const user = useAuth (); // Supposons que cela renvoie l'utilisateur actuel
      if (! user.isloggedIn) {
        return () => h ('div', 'Veuillez vous connecter.');
      }
      if (requiredRole && user.role! == requiredRole) {
        return () => h ('div', 'accès refusé.');
      }
      return () => h (enveloppedComponent);
    }
  };
}

Hocs vs composibles vs mixins

Approche Pros Inconvénients
Hoc Logique de wrapper réutilisable et claire Peut conduire à l'enfer en wrapper, moins intuitif en Vue
Mixins Options faciles à fusionner Collisions de noms, dépendances peu claires
Composables Flexible, shakable d'arbres, première classe dans Vue 3 Nécessite des connaissances sur la composition de l'API

? Dans la Vue moderne (3), préfèrent les composants . Ils sont plus flexibles et moins sujettes aux erreurs que les hocs ou les mixins.

Par exemple, la logique de chargement ci-dessus pourrait être écrite comme:

 // Composables / Useloading.js
Fonction d'exportation UseLoading (Delay = 1000) {
  const Isloading = ref (true);
  onMounted (async () => {
    attendre une nouvelle promesse (résoudre => setTimeout (résoudre, retard));
    Isloading.Value = false;
  });
  return {Isloading};
}

Puis utilisez-le directement dans n'importe quel composant:

 installation() {
  const {Isloading} = useLoading ();
  return {Isloading};
}

Réflexions finales

Bien que les HOC soient possibles en Vue , ils ne sont pas le moyen idiomatique de partager la logique. Le système de réactivité et l'API de composition de Vue font des composants un mieux pour la plupart des cas d'utilisation.

Cela dit, les HOC peuvent toujours être utiles dans les scénarios avancés, comme envelopper dynamiquement les composants dans les bibliothèques ou lorsque vous avez besoin de résumer la logique de rendu.

Donc:
✅ Vous pouvez utiliser des hocs en Vue
✅ Ils sont inspirés par la réaction
❌ Mais dans la plupart des cas, une fonction composable est plus propre et plus maintenable

Fondamentalement, réfléchissez à deux fois avant de chercher un hoc - il y a probablement une manière plus simple et plus vue.

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

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.

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)

Sujets chauds

Tutoriel PHP
1535
276
Entrée gratuite sur le site Web des ressources du produit fini de Vue. Le produit fini complet est consulté en permanence en ligne Entrée gratuite sur le site Web des ressources du produit fini de Vue. Le produit fini complet est consulté en permanence en ligne Jul 23, 2025 pm 12:39 PM

Cet article a sélectionné une série de sites Web de ressources de produits finis de haut niveau pour les développeurs et les apprenants VUE. Grâce à ces plateformes, vous pouvez parcourir, apprendre et même réutiliser des projets complets massifs de haute qualité en ligne gratuitement, améliorant ainsi rapidement vos compétences en développement et vos capacités de pratique de projet.

Quels sont les crochets de cycle de vie Vue? Nommez quelques-uns et expliquez leurs cas d'utilisation. Quels sont les crochets de cycle de vie Vue? Nommez quelques-uns et expliquez leurs cas d'utilisation. Jul 24, 2025 am 12:08 AM

Le crochet du cycle de vie du composant VUE est utilisé pour exécuter du code à une étape spécifique. 1. Créé: appelé immédiatement après la création du composant, adapté à l'initialisation des données; 2.Mountide: appelé après le montage du composant sur le DOM, adapté au fonctionnement du DOM ou au chargement des ressources externes; 3.Uplété: appelé lorsque la mise à jour des données provoque la réadaptation du composant, adapté pour répondre aux modifications de données; 4.Beforeunmount: appelé avant que le composant ne soit désinstallé, adapté à l'écoute des événements de nettoyage ou à la minuterie pour éviter les fuites de mémoire. Ces crochets aident les développeurs à contrôler avec précision le comportement des composants et à optimiser les performances.

Exemple de composant de pagination dans Vue Exemple de composant de pagination dans Vue Jul 26, 2025 am 08:49 AM

Pour implémenter les composants de pagination Vue réutilisables, les points clés suivants doivent être clarifiés: 1. Définissez les accessoires, y compris le nombre total de lignes, le nombre de lignes par page et le numéro de page actuel; 2. Calculez le nombre total de pages; 3. Générez dynamiquement le tableau de numéro de page affiché; 4. Traitez l'événement Cliquez sur le numéro de page et passez-le au composant parent; 5. Ajouter des styles et des détails d'interaction. Recevez des données via les accessoires et définissez les valeurs par défaut, utilisez l'attribut calculé pour calculer le nombre total de pages, utilisez la méthode pour générer le tableau de numéro de page actuellement affiché, rendre les boutons dans le modèle et lier les événements de clic pour déclencher la mise à jour: événement de page en cours, écouter l'événement dans le composant parent pour améliorer le numéro de page actuel, et enfin mettre en évidence le numéro de page en cours par le biais de CSS et contrôler l'état du bouton pour améliorer l'expérience utilisateur.

Vue Entrée de ressource de produit fini gratuit Vue Entrée de ressource de produit fini gratuit Jul 23, 2025 pm 12:42 PM

Pour les développeurs VUE, un projet ou un modèle fini de haute qualité est un outil puissant pour démarrer rapidement de nouveaux projets et apprendre les meilleures pratiques. Cet article a sélectionné plusieurs portails de ressources de produits finis gratuits en haut Vue et la navigation sur le site Web pour vous aider à trouver les solutions frontales dont vous avez besoin efficacement, qu'il s'agisse d'un système de gestion back-end, d'une bibliothèque de composants d'interface utilisateur ou de modèles pour des scénarios commerciaux spécifiques, vous pouvez facilement les obtenir.

Propriétés calculées vs méthodes en Vue Propriétés calculées vs méthodes en Vue Aug 05, 2025 am 05:21 AM

Calculé a un cache et les accès multiples ne sont pas recalculés lorsque la dépendance reste inchangée, tandis que les méthodes sont exécutées à chaque fois qu'elles sont appelées; 2.COMPUT est adapté aux calculs basés sur des données réactives. Les méthodes conviennent aux scénarios où les paramètres sont requis ou les appels fréquents, mais le résultat ne dépend pas de données réactives; 3.Coupation prend en charge les getters et les setters, ce qui peut réaliser la synchronisation bidirectionnelle des données, mais les méthodes ne sont pas prises en charge; 4. Résumé: Utilisez d'abord calculé pour améliorer les performances et utilisez des méthodes lors de la réussite des paramètres, de l'exécution d'opérations ou d'éviter le cache, en suivant le principe de "Si vous pouvez utiliser calculé, vous n'utilisez pas de méthodes".

Comment utiliser des emplacements et des emplacements nommés dans un composant Vue? Comment utiliser des emplacements et des emplacements nommés dans un composant Vue? Jul 21, 2025 am 03:24 AM

L'utilisation de créneaux et des emplacements nommés dans Vue peut améliorer la flexibilité et la réutilisabilité des composants. 1. La machine à sous permet au composant parent d'insérer du contenu dans le composant enfant via une balise, tel que l'insertion du texte de paragraphe dans le composant Card.Vue; 2. La machine à sous nommée réalise le contrôle de la position d'insertion de contenu via l'attribut de nom, tels que la définition respectivement des zones d'en-tête, de corps et de pied de page dans le composant de la boîte modale; 3. Le contenu par défaut peut être défini dans la fente comme alternative lorsque le composant parent n'est pas fourni, tel que le bouton Fermer par défaut; 4. Le symbole # est la syntaxe d'abréviation de V-slot:; 5. Il est recommandé d'utiliser raisonnablement des emplacements pour éviter une dépendance excessive, et un certain contenu peut être considéré comme mis en œuvre via des accessoires ou des composants de la portée.

Comment mettre en œuvre l'internationalisation (I18N) dans une application VUE? Comment mettre en œuvre l'internationalisation (I18N) dans une application VUE? Jul 26, 2025 am 08:37 AM

Installer Vuei18n: Vue3 utilise npminstallvue-i18n @ suivant, Vue2 utilise npminstallvue-i18n; 2. Créer des fichiers linguistiques tels que en.json et es.json dans le répertoire des localités, en prenant en charge les structures imbriquées; 3. Créez des instances via CreateI18n dans Vue3 et montez-les dans Main.js, Vue2 utilise Vue.use (Vuei18n) et instanciate Vuei18n; 4. Utiliser {{$ t ('key')}} Interpolation dans les modèles, utilisez la fonction t usei18n dans l'API Vue3Composition et l'API Vue2Options

Comment implémenter un commutateur de thème en mode sombre dans Vue Comment implémenter un commutateur de thème en mode sombre dans Vue Aug 02, 2025 pm 12:15 PM

Créez un composant de commutation de thème, utilisez la case à cocher pour lier l'état d'IsdarkMode et appeler la fonction toggletheme; 2. Vérifiez les préférences locales et systèmes dans le montage pour initialiser le thème; 3. Définissez la fonction ApplicationTheme pour appliquer la classe en mode noir à l'élément HTML aux styles de commutation; 4. Utilisez les propriétés personnalisées CSS pour définir des variables lumineuses et sombres et écrasez les styles par défaut via la classe en mode noir; 5. Introduisez le composant Themeswitcher dans le modèle d'application principal pour afficher le bouton à bascule; 6. Écouter éventuellement les modifications préfères-color pour synchroniser le thème du système. Cette solution utilise Vue

See all articles