DOM完成渲染后执行功能

kpl*_*tes 4 javascript angular

我记得在博客中读过以下摘录。

$ timeout将新事件添加到浏览器事件队列中(渲染引擎已在此队列中),因此它将在新超时事件之前完成执行。

我想知道在angular / javascript中是否有比使用更好的方法

setTimeout(() => {  
    // do something after dom finishes rendering
}, 0);
Run Code Online (Sandbox Code Playgroud)

在DOM完全完成诸如更新* ngFor并在页面上呈现结果之类的任务后执行代码。

Nil*_*ner 5

您可以尝试使用ngAfterViewInit生命周期挂钩,这是按时间顺序排列的最后一次单发生命周期挂钩。

https://angular.io/guide/lifecycle-hooks

它的工作原理很像,ngInit但是在视图和子视图初始化之后会触发。

如果您需要每次DOM完成时都会触发的操作,则可以尝试ngAfterViewCheckedngAfterContentChecked

  • 我相信这只会在页面初始化后触发,而不是在每次DOM事件完成后才会触发 (2认同)