对 Angular 中的组件使用 class 继承是一种好习惯吗?嵌套继承呢?
It's good practice to use class inheritance for components in Angular? What about nested inheritance?
如果我有这样的 类:
common.ts(在 mixins 文件夹下):
export class Common { }
基础-component.ts:
@Mixin([Validation])
export abstract class BaseComponent extends Common implements Validation {...}
基本列表类型-component.ts:
@Injectable()
class BaseListComponent<T, U> extends BaseComponent implements OnInit, OnDestroy {...}
带模板的组件。component.ts:
@Component({
selector: "app-component-with-template",
templateUrl: "./component-with-template.component.html"
})
export class ComponentWithTemplate extends BaseListComponent<DataInterface, DataService> {...}
在 Angular 中,像这样使用继承是一个好习惯吗?关于性能,用继承好还是创建服务好?
根据我的经验,使用继承使得调试父 classes 变得困难,因为 debugger/logs 将为实现它的每个子 class 显示。
我尽量远离继承,并尝试将服务或导出函数用于一遍又一遍完成的常见任务。该服务可以在需要的任何地方注入,并且可以在单元测试中模拟。这种模式就是所谓的“优先考虑可组合性而不是继承”。
如果我有这样的 类:
common.ts(在 mixins 文件夹下):
export class Common { }
基础-component.ts:
@Mixin([Validation])
export abstract class BaseComponent extends Common implements Validation {...}
基本列表类型-component.ts:
@Injectable()
class BaseListComponent<T, U> extends BaseComponent implements OnInit, OnDestroy {...}
带模板的组件。component.ts:
@Component({
selector: "app-component-with-template",
templateUrl: "./component-with-template.component.html"
})
export class ComponentWithTemplate extends BaseListComponent<DataInterface, DataService> {...}
在 Angular 中,像这样使用继承是一个好习惯吗?关于性能,用继承好还是创建服务好?
根据我的经验,使用继承使得调试父 classes 变得困难,因为 debugger/logs 将为实现它的每个子 class 显示。
我尽量远离继承,并尝试将服务或导出函数用于一遍又一遍完成的常见任务。该服务可以在需要的任何地方注入,并且可以在单元测试中模拟。这种模式就是所谓的“优先考虑可组合性而不是继承”。