当我们谈论 OnInit 时,Angular 2+ 中组件初始化的确切含义是啥?

Posted

技术标签:

【中文标题】当我们谈论 OnInit 时,Angular 2+ 中组件初始化的确切含义是啥?【英文标题】:What is the exact meaning of component initialization in angular 2+, when we talk about OnInit?当我们谈论 OnInit 时,Angular 2+ 中组件初始化的确切含义是什么? 【发布时间】:2018-11-11 17:58:45 【问题描述】:

根据 Angular.io Angular Documentation on Life cycle hooks OnInit 的目的: 在 Angular 首次显示数据绑定属性并设置指令/组件的输入属性后初始化指令/组件。

那么当说组件已经初始化时究竟会发生什么。是初始化了所有变量还是显示了组件的模板,还是两者都有?

【问题讨论】:

【参考方案1】:

那么当说组件已经初始化时究竟会发生什么。 这是否意味着所有变量都已初始化或组件的 模板是显示还是两者都显示?

渲染标记,绑定绑定,注入子视图/组件。换句话说,从现在开始,你可以从组件代码做任何事情。您可以将其威胁为“Angular Construction”方法并在那里执行所有组件初始化工作。它与 EJB 中的@PostConstruct 概念非常相似。

【讨论】:

当然,只有一件事。这个特定组件的内容和视图没有在这个生命周期钩子中初始化(如果外部代码没有投射到这个组件),对吧?【参考方案2】:

ngOnInit 在 Angular 创建组件后很有用。因此,当构造函数完成其工作时,该组件被称为已初始化,并且它具有指定的属性,您现在可以在 ngOnInit 中初始化这些属性。

我希望这会有所帮助!

【讨论】:

不,创造是什么意思。就像组件的所有部分都创建了什么?就像在 AfterViewInit 中一样,视图已初始化,因此很明显,此处未初始化视图,并且在 AfterContentinit 中投影了外部内容。那么这是否意味着在 oninit 中为组件初始化内容?

以上是关于当我们谈论 OnInit 时,Angular 2+ 中组件初始化的确切含义是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Angular2指令,构造函数与onInit [重复]

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

当我们谈论Erlang Maps时,我们谈论什么 Part 2

在谈论 AngularJS 时,视图到底是啥?

Angular 1.5 $onInit 未触发 - 打字稿

不能在 Angular 构造函数或 OnInit 中放置断点