Trong Angular 2 trở lên, mọi thứ đều là một thành phần. Các thành phần là cách chính mà chúng tôi xây dựng và chỉ định các yếu tố và logic trên trang, thông qua cả các yếu tố và thuộc tính tùy chỉnh có thêm chức năng cho các thành phần hiện có của chúng tôi.
http://learnangular2.com/components/
Nhưng những chỉ thị nào sau đó trong Angular2 +?
Chỉ thị thuộc tính gắn hành vi với các yếu tố.
Có ba loại chỉ thị trong Angular:
- Thành phần chỉ thị thành phần với một mẫu.
- Chỉ thị cấu trúc, thay đổi bố cục DOM bằng cách thêm và xóa các phần tử DOM.
- Chỉ thị thuộc tính. Thay đổi diện mạo hoặc hành vi của một thành phần, thành phần hoặc chỉ thị khác.
https://angular.io/docs/ts/latest/guide/attribution-directives.html
Vì vậy, những gì xảy ra trong Angular2 trở lên là Chỉ thị là các thuộc tính bổ sung chức năng cho các thành phần và thành phần .
Nhìn vào mẫu dưới đây từ Angular.io:
import { Directive, ElementRef, Input } from '@angular/core';
@Directive({ selector: '[myHighlight]' })
export class HighlightDirective {
constructor(el: ElementRef) {
el.nativeElement.style.backgroundColor = 'yellow';
}
}
Vì vậy, những gì nó làm, nó sẽ mở rộng cho bạn các thành phần và các thành phần HTML bằng cách thêm nền màu vàng và bạn có thể sử dụng nó như dưới đây:
<p myHighlight>Highlight me!</p>
Nhưng các thành phần sẽ tạo ra các yếu tố đầy đủ với tất cả các chức năng như dưới đây:
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)
}
}
và bạn có thể sử dụng nó như dưới đây:
<my-component></my-component>
Khi chúng tôi sử dụng thẻ trong HTML, thành phần này sẽ được tạo và hàm tạo được gọi và kết xuất.
@Component
trang trí thực sự là một trình@Directive
trang trí được mở rộng với các tính năng hướng mẫu - nguồn .