Quelle est la différence entre le composant et la directive?

Je viens de commencer à travailler avec Angular 2.

Je me demandais quelles sont les différences entre les composants et les directives Angulaire 2?

59
demandé sur Sangwin Gawande 2016-01-05 16:36:58

5 réponses

Fondamentalement, il existe trois types de directives dans angular2 selon la documentation.

  • Composant
  • directives structurelles
  • directives D'attribut

Composant

Est également un type de directive avec template, styles et partie logique qui est le type de directive le plus célèbre parmi tous dans angular2. Dans ce type de directive, vous pouvez utiliser d'autres directives, qu'elles soient personnalisées ou intégrées dans l'annotation @ component, comme suivant:

@Component({
    selector: "my-app"
    directives: [custom_directive_here]
})

Utilisez cette directive à votre avis comme:

<my-app></my-app>

Pour la directive component, j'ai trouvé le meilleur tutoriel ici.

Directives structurelles

Comme * ngFor et * ngIf utilisé pour modifier la disposition DOM en ajoutant et en supprimant des éléments DOM. expliqué ici

Directives D'attribut

Sont utilisés pour donner un comportement ou un style personnalisé aux éléments existants en appliquant certaines fonctions / logiques. comme ngStyle est un attribut directive pour donner du style dynamiquement aux éléments. nous pouvons créer notre propre directive et l'utiliser comme attribut de certains éléments prédéfinis ou personnalisés, voici l'exemple de directive simple:

Tout d'Abord, nous devons importer la directive de angular2/core

import {Directive, ElementRef, Renderer, Input} from 'angular2/core';

@Directive({
  selector: '[Icheck]',
})
export class RadioCheckbox {
   custom logic here,,,,
}

Et nous devons l'utiliser dans la vue comme ci-dessous:

<span Icheck>HEllo Directive</span>

Pour plus d'info, vous pouvez lire le tutoriel officiel ici et ici

77
répondu Pardeep Jain 2016-01-05 16:11:41

Les composants

Ont leur propre vue (HTML et styles). Les Directives ne sont que des "comportements" ajoutés aux éléments et composants existants.
Component s'étend Directive.

Pour cette raison, il ne peut y avoir qu'un seul composant sur un élément hôte, mais plusieurs directives.

Les directives structurelles sont des directives appliquées aux éléments <template> et utilisées pour ajouter / supprimer du contenu (tamponner le modèle). Le * dans les applications de directive comme *ngIf provoque la création implicite d'une balise <template>.

49
répondu Günter Zöchbauer 2018-02-02 10:59:42
6
répondu Thierry Templier 2016-01-05 13:53:18

Angular 2 suit le modèle d'architecture composant/Service.

Une application angulaire 2 est faite de composants. Un composant est la combinaison D'un modèle HTML et d'une classe de Composant (une classe typescript) qui contrôle une partie de l'écran.

Pour la bonne pratique, la classe component est utilisée pour la liaison de données à la vue respective. La liaison de données bidirectionnelle est une excellente fonctionnalité fournie par Angular framework.

Les composants sont réutilisables dans votre application à l'aide nom du sélecteur fourni.

Le composant est également une sorte de directive avec un modèle.

Les deux autres directives sont

  1. Directives structurelles-Modifiez la disposition DOM en ajoutant et en supprimant des éléments DOM. Ex: NgFor et NgIf.

  2. Attribut directives-modifier l'apparence ou le comportement d'un élément, d'un composant ou d'une autre directive. Ex: NgStyle

1
répondu Malatesh Patil 2017-06-02 10:13:16

Voici la définition réelle.

  • S'il a un modèle , c'est un composant
  • sinon, s'il a un sélecteur entre parenthèses " [likethis]", il s'agit d'une Directive D'attribut
  • sinon c'est une directive structurelle .

Toute autre définition est fausse.

1
répondu John Henckel 2018-07-17 15:03:18