Angular中@Directive和@Component的区别是什么?
大家好!我刚开始学习Angular和TypeScript,对@Directive和@Component装饰器感到困惑。我知道它们都用于在Angular中创建某种“实体”,但不完全理解何时使用哪一个。
例如,我创建了一个简单的组件来显示按钮:
```typescript
import { Component } from '@angular/core';
@Component({
selector: 'app-my-button',
template: ``
})
export class MyButtonComponent {
label = 'Нажми меня';
}
```
然后我尝试通过指令做同样的事情:
```typescript
import { Directive } from '@angular/core';
@Directive({
selector: '[appMyButton]'
})
export class MyButtonDirective {
// 如何在这里添加模板和样式?
}
```
我读到`@Component`是`@Directive`的子类,但在实践中它们的行为不同。在`@Directive`中不能使用`template`和`styles`,而在`@Component`中可以。那为什么还需要`@Directive`呢?