Component is a template-based directive.
Structural directives - controls DOM elements, allowing us to add and delete items from the document. For example, *ngIf, *ngFor, and so on.
Attribute directives - to change an element's, component's, or directive's behaviour or appearance.