【发布时间】:2021-03-17 08:58:03
【问题描述】:
我正试图准确了解导致 AfterViewInit() 和 AfterContentInit() 生命周期挂钩触发的原因。
来自官方 Angular 文档,它说 AfterViewInit()
Angular 在创建组件的子视图后调用
Angular 将外部内容投射到组件后的 Angular 调用
这两个陈述对我来说已经几乎无法区分了。 子视图与外部内容不一样吗?
举个例子: parent.component.html
<div class="parent">
<child-comp></child-comp>
</div>
其中 child-comp 是一个子组件,包含大量标记并依赖于异步数据。
在 parent.component.ts 中,我想等到子组件完全呈现后再调用AfterViewInit() 或AfterContentInit()。当我运行此代码时,它会按照 Angular 所说的确切顺序发生,它将首先调用 AfterContentInit(),然后调用 AfterViewInit()。目前 child-comp 没有接收到很多数据,但最终它可以并且需要更长的时间来渲染(数据一旦上线就会增长)。
我现在担心的是,因为我的数据是有限的,并且加载时间如此之快,通过选择一个生命周期挂钩而不是另一个我可能不情愿地最终陷入竞争状态 - 一旦数据增加和加载时间就会失败减速。
【问题讨论】:
-
这是以前在 angular.io i.imgur.com/zwOH5VA.png987654323@上用来说明的图片
标签: angular