Angular 中的指令:它们为什么有用?不能用(事件)代替它们吗?

Directives in Angular: why are they useful? Can't they just be substituted by (event)s?

我是 Angular2 的新手,我正在阅读元素、组件、指令等之间的差异,但我不明白为什么存在 @Directive。

我已经阅读了文档(没有必要 link 它,谢谢,我已经检查过了)并且我已经看到 @Component 是一个指令的特例。此外,还有不同种类的指令(结构、属性和已经提到的组件)。然而,在一天结束的时候,我看了一些@Directive 的例子,我发现它们可以被相应@Component 中的一个(事件)代替。

示例:本页@Directive的主要示例 可以用类似于

的东西代替
<contact-card [name]="'foo'" [city]="'bar'" (onClick)="someAction()"></contact-card>

也许我没有正确理解它并且无法替代它,但如果是这样,是否有任何充分的理由或有用的例子表明使用@Directive实际上是必要的或比调整@Component更简单?

提前致谢!

指令向现有 DOM 元素或现有组件实例添加行为。

一个组件,而不是 adding/modifying 行为,实际上创建了它自己的带有附加行为的视图(DOM 元素的层次结构)。

参考以下文档:

Directive

Component