Avatar ·

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`呢?