Fermer

janvier 28, 2021

Comprendre les composants sans rendu dans Vue


Dans cet article, nous allons apprendre à créer des composants sans rendu dans Vue, et comment et quand les utiliser.

Les composants sans rendu sont des composants qui ne génèrent aucun type de HTML dans le DOM par eux-mêmes. Ils sont très uniques, car ils servent d'encapsuleurs logiques que vous pouvez insérer dans votre modèle et leur transmettre un élément HTML personnalisé. Ils exécuteront leur logique et l'injecteront dans votre HTML via quelque chose appelé une portée.

Dans cet article, nous allons apprendre comment créer des composants sans rendu dans Vue, et comment et quand les utiliser. Sachez qu'en raison de la portée (hah!) De l'article, je devrai supposer que vous avez des connaissances de base sur les slots Vue et les slots scoped.

Si vous avez besoin d'un rappel sur les slots scoped, vous pouvez consulter le documentation pour les emplacements étendus ici ou jetez un œil à ces articles de blog sur Vue slots et Vue scoped slots .

Quand utiliser des composants sans rendu? [19659006] Si jamais vous vous trouvez en train d'écrire un composant qui a une logique particulière à l'intérieur de celui-ci, mais que vous souhaitez que l'utilisateur de ce composant puisse écrire n'importe quel HTML personnalisé pour lui et utiliser cette logique, alors les composants sans rendu pourraient être l'une de vos solutions

Notez que j'ai dit une de vos solutions car cela peut aussi être réalisé en écrivant un mixin, ou même une classe ou une fonction JS standard qui injecte ce comportement dans vos composants. En fait, je dirais que la plupart du temps, une approche fonctionnelle sera supérieure de quelque manière que ce soit – pensez en termes de Vue 3 et de l'API de composition, du code réutilisable et encapsulé qui peut être injecté et utilisé dans n'importe lequel de vos composants.

Concernant les mixins en particulier, rappelez-vous qu'ils présentent l'inconvénient d'une collision potentielle avec d'autres parties de votre composant. Par rapport à cet inconvénient particulier, les composants sans rendu ont l'avantage en raison de leur encapsulation de la logique.

Maintenant, cela dit, il existe des scénarios où vous voudrez peut-être aborder le problème avec un composant sans rendu simplement parce que vous voulez afficher ce comportement dans le DOM, ou parce que vous écrivez une bibliothèque de composants qui doit être super flexible.

Dans cet article, nous allons regarder un exemple de base qui illustrera ce dernier scénario. Imaginez que vous écrivez un composant qui a la capacité de trier un tableau d'objets par une propriété particulière – mais vous ne voulez pas être strict sur la façon dont ce contenu doit être rendu.

Peut-être que l'utilisateur veut le mettre dans un

    ou peut-être même faire un

    . Dans ce cas, un composant sans rendu peut être une bonne solution.

    Construire le composant sans rendu

    Pour commencer avec un composant sans rendu, examinons la configuration la plus basique possible, et comment nous pourrions l'utiliser sur un autre

    Un composant sans rendu n'a pas de