我是 Angular 的新手,如果我的问题听起来很愚蠢,我深表歉意。我总是混淆 ngOnInit() 和 ngAfterContentInit() 生命周期钩子(Hook)。在官方文档中,它说:
ngOnInit():在 Angular 首次显示数据绑定(bind)属性并设置指令/组件的输入属性后初始化指令/组件。
ngAfterContentInit():在 Angular 将外部内容转换到组件的 View /指令所在的 View 后做出响应。
我的问题是:
Q1-对于 ngOnInit()
,Initialize the directive/component after Angular first display the data-bound properties 是什么意思? “初始化”是否意味着创建指令/组件的实例?
Q2-对于 ngAfterContentInit()
,组件的 View 是什么意思? View 是否表示组件的 templateUrl 中关联的模板 html?
最佳答案
Q1:不是,类实例的创建是方法constructor
发生在 ngOnInit()
之前,一个组件是一个带有模板的指令data-bound properties ,查看节点等。和 ngOnInit()
在数据绑定(bind)属性准备就绪后调用,如您所知, ngAfterViewInit()
在 View 就绪后调用。
Q2:“内容”的含义有一个例子:
您在 app.component.html
中定义了一个组件选择器里面有一段文字:
<custom-component>
Some random text
</custom-component>
现在里面custom-component.component.hml
您可以使用 <ng-content></ng-content>
显示文本“一些随机文本”它充当您传递的文本的占位符
<ng-content></ng-content>
ngAfterContentInit()
只是意味着将“一些随机文本”传递给 custom-component.component.hml
查看完成。
关于javascript - 与 ngOnInit() 和 ngAfterContentInit() 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58722877/