In Angular 2 e versioni successive, "tutto è un componente". I componenti sono il modo principale in cui costruiamo e specificiamo elementi e logica nella pagina, sia attraverso elementi personalizzati che attributi che aggiungono funzionalità ai nostri componenti esistenti.
http://learnangular2.com/components/
Ma quali direttive fanno allora in Angular2 +?
Le direttive di attributo associano il comportamento agli elementi.
Esistono tre tipi di direttive in angolare:
- Componenti: direttive con un modello.
- Direttive strutturali: modifica il layout del DOM aggiungendo e rimuovendo elementi DOM.
- Direttive degli attributi: modificano l'aspetto o il comportamento di un elemento, componente o altra direttiva.
https://angular.io/docs/ts/latest/guide/attribute-directives.html
Quindi ciò che sta accadendo in Angular2 e sopra è che le direttive sono attributi che aggiungono funzionalità a elementi e componenti .
Guarda l'esempio seguente da Angular.io:
import { Directive, ElementRef, Input } from '@angular/core';
@Directive({ selector: '[myHighlight]' })
export class HighlightDirective {
constructor(el: ElementRef) {
el.nativeElement.style.backgroundColor = 'yellow';
}
}
Quindi, ciò che fa, ti estenderà componenti ed elementi HTML con l'aggiunta di sfondo giallo e puoi usarlo come di seguito:
<p myHighlight>Highlight me!</p>
Ma i componenti creeranno elementi completi con tutte le funzionalità come di seguito:
import { Component } from '@angular/core';
@Component({
selector: 'my-component',
template: `
<div>Hello my name is {{name}}.
<button (click)="sayMyName()">Say my name</button>
</div>
`
})
export class MyComponent {
name: string;
constructor() {
this.name = 'Alireza'
}
sayMyName() {
console.log('My name is', this.name)
}
}
e puoi usarlo come di seguito:
<my-component></my-component>
Quando usiamo il tag in HTML, questo componente verrà creato e il costruttore verrà chiamato e renderizzato.
@Componentdecoratore è in realtà un@Directivedecoratore esteso con funzionalità orientate al modello: la fonte .