DonkeyCode
Menu

Directive VS Component

Directive ou composant Angular : ce qui les distingue réellement, quand utiliser l'un plutôt que l'autre, et les erreurs de conception fréquentes.

Illustration de Directive VS Component

Les deux ont l'air de faire la même chose et d'avoir les mêmes attributs :

  • Quels sont les cas d'utilisation ?
  • Quelles sont les différences ?
  • Quand utiliser l'un ou l'autre ?

La réponse simple : Un Component est une Directive avec une vue

Quels sont les cas d'utilisation ?

Directive

        @Directive({
            selector: "[appClick]",
        })
        class ClickDirective {
          @HostListener('mousedown')
          private onMouseDown() {
              console.log('element clicked');
          }
        }
        

Utilisable de cette façon :

        Click me !

        

Component

        @Component({
            selector: "app-click",
            template: `Click me !
            `
        })
        class ClickComponent {
          public click() {
              console.log('element clicked');
          }
        }
        

Utilisable de cette façon :


 

Quelles sont les différences entre les deux ?

Un Component nécessite une vue, contrairement à une Directive.

Un Component est un bloc UI réutilisable, une Directive est un comportement réutilisable.

Une Directive ajoute ou modifie un comportement à un élément du DOM ou à un Component.

Quand utiliser l'un ou l'autre ?

Component

  • pour construire des blocs réutilisables au niveau de l'UI, avec des comportements personnalisés

Directive

  • pour créer des comportements réutilisables afin de compléter les éléments/Components déjà disponibles
En parler avec nous

Vous vous posez la même question ?

Racontez-nous votre situation. On vous dira dans le même échange si c'est un sujet pour nous, et par quoi on commencerait.

Parlons de votre projet

ou choisissez un créneau tout de suite