我不明白为啥 Angular 组件类 add 实现 onInit 接口

Posted

技术标签:

【中文标题】我不明白为啥 Angular 组件类 add 实现 onInit 接口【英文标题】:I can't figure out why Angular component class add implements onInit interface我不明白为什么 Angular 组件类 add 实现 onInit 接口 【发布时间】:2020-08-23 12:06:31 【问题描述】:

当你通过“ng g component ~”命令创建组件时,组件类会自动实现'OnInit'接口。

下面的 sn-p 展示了组件如何实现这个接口来定义自己的初始化方法。

@Component(selector: 'my-cmp', template: `...`)
class MyComponent implements OnInit 
  ngOnInit() 
    // ...
  

在上面的 Angular 文档中,它说接口是为了定义自己的初始化方法,

即使省略'implement OnInit'语法,通过ngOnInit () 语法定义也没有问题。

我不知道我为什么要写它。

【问题讨论】:

这只是一个清晰明确的代码问题。它是由 CLI 自动创建的,因为框架正在推动开发人员将初始化代码放入构造函数中。顺便说一句,在运行时确实不存在 typescript 接口。 【参考方案1】:

接口(类似于java)是组件和接口实现之间的契约。 Angular 开发人员推动使用 OnInit 之类的初始化块(而不是组件构造函数)。

【讨论】:

以上是关于我不明白为啥 Angular 组件类 add 实现 onInit 接口的主要内容,如果未能解决你的问题,请参考以下文章

在 Angular 6 中的类上实现

我不明白为啥一个类是“公共的”[重复]

为啥我无法访问 Angular 组件的传递函数内的类属性?

我不明白为啥会出现语法错误

为啥我们使用 - ngAfterContentInit 生命周期方法

为啥我的输入变量属性未定义(Angular)