Angular生命周期钩子和渲染组件

问题描述 投票:0回答:1

考虑以下html:

<html>
<body>
<app-header></app-header>
<app-footer></app-footer>
</body>
</html>

如果我使用app-footer钩子ngAfterViewInit()将脚本追加到包含jQuery的html脚本中,该脚本可以处理app-header组件中的元素,是否可以工作?

app-header钩子与ngAfterViewInit()钩子相比何时执行?会先执行吗?异步?

angular angular-lifecycle-hooks
1个回答
0
投票

首先,我认为尝试依赖多个组件中生命周期方法执行的顺序和时机是不明智的,因为这种顺序和时机没有得到保证。

即使您在开发环境中正常工作,也不太可能在其他客户端,所有浏览器以及Angular的未来版本中以这种方式正常工作。

[简单地依赖于父组件的afterViewInit生命周期方法会更加安全,在此过程中,可以确保两个子对象都已初始化。

其次,我认为通常建议不要直接访问DOM,而应通过渲染器来访问。使用jQuery违反了该建议。您可能应该寻找一种特定于Angular的方式来完成所需的工作,而不是使用jQuery。

© www.soinside.com 2019 - 2024. All rights reserved.