Que sont les composants d'ordre supérieur (HOC) en Vue?
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.
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.

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:

- 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é):

// 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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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.

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.

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.

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".

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.

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

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
