【发布时间】:2020-12-20 12:49:17
【问题描述】:
我最近将我的 Angular 应用从 v9 升级到了 v10。
我注意到不再支持未修饰的类。见here
所以在ng upgrade 期间,我没有装饰的抽象组件已更改为具有@Directive() 装饰器。
例如
export abstract class AbstractFormControl implements ControlValueAccessor { ... }
改成了
@Directive()
export abstract class AbstractFormControl implements ControlValueAccessor { ... }
为什么 Angular 使用@Directive。 @Component 不是更好的方法,因为类是一个组件而不是一个指令?目的是什么?
【问题讨论】:
-
组件本质上是一个带有模板的指令。当基类没有关联的模板时,将其装饰为指令而不是组件更有意义。如果您需要了解为什么需要进行此更改,您可以查看here。