@Directive e @Component no Angular: qual a diferença e quando usar cada um?
Olá a todos! Comecei a estudar Angular e TypeScript e, ao criar meus primeiros componentes e diretivas, fiquei confuso sobre a diferença entre os decorators `@Component` e `@Directive`. Na documentação diz que `@Component` é uma subclasse de `@Directive`, mas na prática eles são usados de forma diferente.
Por exemplo, estou criando um botão simples que muda de cor ao passar o mouse. Posso fazer isso tanto com um componente quanto com uma diretiva. Aqui está meu código:
**Opção com @Component:**
```typescript
import { Component } from '@angular/core';
@Component({
selector: 'app-hover-button',
template: ``,
styles: [`
.highlight { background-color: yellow; }
`]
})
export class HoverButtonComponent {
onHover() { /* adicionar classe */ }
onLeave() { /* remover classe */ }
}
```
**Opção com @Directive:**
```typescript
import { Directive, HostListener, HostBinding } from '@angular/core';
@Directive({
selector: '[appHover