Attribute Directives
Explain what an attribute directive is and how it differs from a structural directive and a component.
An attribute directive changes the appearance or behavior of an existing DOM element without adding or removing elements from the DOM — it attaches to an element the way a class or style attribute would, hence the name. Angular's own NgClass, NgStyle, and RouterLink are all attribute directives, which is a useful set of examples to cite in an interview since they're things almost every Angular developer has used without necessarily thinking of them as "directives."
An attribute directive is like a tailor who alters an existing suit — taking in the waist, adding a monogram — without building an entirely new suit from scratch the way a component (a full outfit) would.