> В каком порядке вызываются хуки в родительских и дочерних компонентах Angular (Angular)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: LeverX

Стек: Angular

> Пример ответа

В Angular порядок вызова хуков жизненного цикла строго определён и следует иерархии компонентов: сначала отрабатывают хуки родительского компонента, затем дочернего, за исключением ngOnDestroy, где порядок обратный.

Конкретная последовательность для родителя и ребёнка:

  1. Родитель: constructorngOnChanges (если есть входные параметры) → ngOnInitngDoCheck

  2. Ребёнок: constructorngOnChangesngOnInitngDoCheck

  3. Родитель: ngAfterContentInitngAfterContentChecked

  4. Ребёнок: ngAfterViewInitngAfterViewChecked

  5. Родитель: ngAfterViewInitngAfterViewChecked

Ключевые моменты:

  • ngOnInit родителя вызывается до ngOnInit ребёнка.

  • ngAfterViewInit ребёнка вызывается до ngAfterViewInit родителя - это важно для доступа к ViewChild.

  • При уничтожении порядок обратный: сначала ngOnDestroy у ребёнка, затем у родителя.

Пример: если у родителя есть дочерний компонент <app-child>, то при инициализации сначала сработает ngOnInit родителя, потом ngOnInit ребёнка, а ngAfterViewInit - сначала у ребёнка, потом у родителя.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью