ElementRef 在组件构造函数中可用时的状态是什么

Max*_*kyi 8 javascript angular

我可以ElementRef在组件构造函数中访问:

export class MyComponent {
    constructor(element: ElementRef) {
       element.nativeElement
Run Code Online (Sandbox Code Playgroud)

这个 DOM 元素的状态是什么:

1) 就 DOM 而言 - 它是否已经放入 DOM 中?是渲染的吗?是否创建并附加了子组件 DOM 元素?

2)在子组件生命周期方面 - 子组件经历了哪些阶段 - onInit、afterContentInit 等?

Max*_*kyi 7

在内部,每个 Angular 组件都表示为一个元素和一个指令。您可以在这就是为什么在 Angular 中找不到组件的原因中阅读更多相关信息

elementRef你可以注入到构造,实际上是用于承载组件的元素。现在回答你的问题。

1) 就 DOM 而言 - 它是否已经放入 DOM 中?是渲染的吗?是否创建并附加了子组件 DOM 元素?

是的,它被创建并附加到父 DOM 元素。它尚未呈现为同步引导组件的过程,因此浏览器没有机会重新绘制。不,它的子组件尚未创建。

2)在子组件生命周期方面 - 子组件经历了哪些阶段 - onInit、afterContentInit 等?

所有生命周期钩子都是变更检测的一部分。在 Angular 中的变更检测你需要知道的一切中阅读更多内容。并且在更改检测之前创建组件树。所以没有为这个组件触发生命周期钩子,正如我上面所说的,还没有创建任何子级。


Gün*_*uer 5

1)ElementRef.nativeElementngAfterViewInit()被调用时可用。

2) 如果你的意思是被封闭的孩子,那么它是ngAfterContentInit()