> 웹 프론트엔드 > JS 튜토리얼 > Angular 구성 요소 수명 주기에 대한 초보자 가이드

Angular 구성 요소 수명 주기에 대한 초보자 가이드

Linda Hamilton
풀어 주다: 2024-11-11 09:06:03
원래의
646명이 탐색했습니다.

A Beginner’s Guide to Angular Component Lifecycles

수명 주기 후크를 살펴보기 전에 몇 가지 핵심 주제에 대한 기본적인 이해를 갖추는 것이 중요합니다. Angular 문서에 따르면:

전제조건

수명 주기 후크를 사용하기 전에 다음 사항에 대한 기본적인 이해가 있어야 합니다.

  • TypeScript 프로그래밍
  • Angular 개념에 설명된 Angular 앱 디자인 기본

이러한 전제 조건에 익숙해지면 Angular가 제공하는 강력한 수명 주기 후크를 탐색할 준비가 된 것입니다.

Angular 구성 요소 수명 주기는 Angular 구성 요소가 생성, 업데이트 및 삭제되는 방식의 핵심입니다. 이러한 수명 주기를 이해하면 개발자는 수명 전체에 걸쳐 구성 요소의 동작을 제어하여 기능과 사용자 경험을 모두 향상시킬 수 있습니다. 이 기사에서는 Angular 구성 요소 수명 주기 후크를 분석하여 예제를 제공하고 일반적인 사용 사례를 설명합니다.

Angular의 수명주기 후크란 무엇입니까?

Angular는 개발자가 구성 요소 수명 주기의 여러 단계에서 특정 코드를 실행하는 데 활용할 수 있는 여러 수명 주기 후크를 제공합니다. 구성 요소 초기화부터 삭제까지 이러한 후크는 구성 요소의 상태, 동작 및 리소스 정리를 관리하는 데 도움이 됩니다.

다음은 Angular의 모든 수명 주기 후크 목록입니다.

  1. ngOnChanges
  2. ngOnInit
  3. ngDoCheck
  4. ngAfterContentInit
  5. 콘텐츠 확인 후
  6. ngAfterViewInit
  7. ngAfterViewChecked
  8. ngOnDestroy

각 후크에는 특정 목적이 있으며 구성 요소 수명 주기 중 특정 시간에 호출됩니다. 각각에 대해 자세히 살펴보겠습니다.


1. ngOnChanges

용도: 입력 속성이 변경될 때 호출됩니다.

구성 요소가 생성된 후 호출되는 첫 번째 수명 주기 후크입니다. ngOnChanges 메서드는 입력 속성 값이 변경될 때마다 트리거됩니다. 이는 구성 요소 바인딩 입력 속성의 변경에 응답하여 코드를 실행하려는 경우 특히 유용합니다.

예:

import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';

@Component({
  selector: 'app-sample',
  template: `<p>{{ data }}</p>`
})
export class SampleComponent implements OnChanges {
  @Input() data: string;

  ngOnChanges(changes: SimpleChanges): void {
    console.log('Data changed:', changes.data.currentValue);
  }
}
로그인 후 복사
로그인 후 복사

2.ngOnInit

목적: 구성 요소의 첫 번째 ngOnChanges 이후에 한 번 호출됩니다.

ngOnInit 후크는 대부분의 초기화 코드가 위치하는 곳입니다. 속성을 초기화하거나, 필수 구독을 설정하거나, 구성 요소가 의존하는 HTTP 호출을 수행하기에 좋은 장소입니다.

예:

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-sample',
  template: `<p>{{ info }}</p>`
})
export class SampleComponent implements OnInit {
  info: string;

  ngOnInit(): void {
    this.info = 'Component initialized!';
  }
}
로그인 후 복사
로그인 후 복사

3. ngDoCheck

목적: 모든 변경 감지 실행 중에 호출됩니다.

ngDoCheck 후크를 사용하면 자체 변경 감지 알고리즘을 구현할 수 있습니다. 이는 Angular가 기본적으로 감지하지 못하는 객체의 깊은 변화를 추적하는 데 유용할 수 있습니다. 다만, 올바르게 사용하지 않을 경우 성능에 영향을 줄 수 있으므로 주의하여 사용하시기 바랍니다.

예:

import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';

@Component({
  selector: 'app-sample',
  template: `<p>{{ data }}</p>`
})
export class SampleComponent implements OnChanges {
  @Input() data: string;

  ngOnChanges(changes: SimpleChanges): void {
    console.log('Data changed:', changes.data.currentValue);
  }
}
로그인 후 복사
로그인 후 복사

4.ngAfterContentInit

목적: 첫 번째 ngDoCheck 이후에 한 번 호출됩니다.

이 후크는 Angular가 외부 콘텐츠를 구성 요소에 투영한 후에 호출됩니다. 템플릿에 외부 콘텐츠를 포함하는 데 사용되는 구성 요소에 특히 유용합니다.

예:

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-sample',
  template: `<p>{{ info }}</p>`
})
export class SampleComponent implements OnInit {
  info: string;

  ngOnInit(): void {
    this.info = 'Component initialized!';
  }
}
로그인 후 복사
로그인 후 복사

5. ngAfterContentChecked

목적: 투사된 콘텐츠를 확인할 때마다 호출됩니다.

ngAfterContentChecked 수명 주기 후크는 Angular가 구성 요소에 프로젝션된 콘텐츠를 확인할 때마다 실행됩니다. ngAfterContentInit와 유사하지만 각 변경 감지 주기 후에 실행됩니다.

예:

import { Component, DoCheck } from '@angular/core';

@Component({
  selector: 'app-sample',
  template: `<p>{{ count }}</p>`
})
export class SampleComponent implements DoCheck {
  count: number = 0;

  ngDoCheck(): void {
    console.log('Change detection running');
    this.count++;
  }
}
로그인 후 복사

6.ngAfterViewInit

목적: 첫 번째 ngAfterContentChecked 이후에 한 번 호출됩니다.

이 수명 주기 후크는 구성 요소의 뷰(및 모든 하위 뷰)가 초기화된 후 작업을 수행하는 데 사용됩니다. 일반적으로 Angular가 렌더링한 후 뷰의 자식 속성을 조작하거나 읽는 데 사용됩니다.

예:

import { Component, AfterContentInit } from '@angular/core';

@Component({
  selector: 'app-sample',
  template: `<ng-content></ng-content>`
})
export class SampleComponent implements AfterContentInit {
  ngAfterContentInit(): void {
    console.log('Content projected');
  }
}
로그인 후 복사

7. ngAfterViewChecked

목적: 컴포넌트 뷰를 확인할 때마다 호출됩니다.

이 후크는 Angular가 구성 요소의 뷰에서 업데이트를 확인한 후에 호출됩니다. ngAfterViewInit와 유사하지만 모든 변경 감지 주기 후에 실행됩니다. 이는 뷰의 업데이트에 따라 달라지는 논리를 적용하는 데 사용할 수 있습니다.

예:

import { Component, AfterContentChecked } from '@angular/core';

@Component({
  selector: 'app-sample',
  template: `<ng-content></ng-content>`
})
export class SampleComponent implements AfterContentChecked {
  ngAfterContentChecked(): void {
    console.log('Projected content checked');
  }
}
로그인 후 복사

8. ngOnDestroy

목적: Angular가 구성 요소를 삭제하기 직전에 호출됩니다.

ngOnDestroy 후크는 관찰 가능 항목 구독 취소, 이벤트 핸들러 분리 또는 메모리 누수를 일으킬 수 있는 리소스 해제와 같은 정리 작업을 수행하는 장소입니다.

예:

import { Component, AfterViewInit, ViewChild, ElementRef } from '@angular/core';

@Component({
  selector: 'app-sample',
  template: `<p #textElement>Hello, world!</p>`
})
export class SampleComponent implements AfterViewInit {
  @ViewChild('textElement') textElement: ElementRef;

  ngAfterViewInit(): void {
    console.log('View initialized:', this.textElement.nativeElement.textContent);
  }
}
로그인 후 복사

결론

이러한 수명 주기 후크를 효과적으로 이해하고 사용하면 Angular 애플리케이션을 세밀하게 제어할 수 있습니다. ngOnInit의 데이터 초기화부터 ngOnDestroy의 리소스 정리에 이르기까지 수명 주기 후크는 동적 애플리케이션에 필요한 필수 제어 기능을 제공합니다.

다음 기사에서는 이러한 후크가 실제 Angular 애플리케이션에서 어떻게 함께 작동하는지 자세히 알아보고 더 복잡한 수명 주기 및 상호 작용의 예를 보여 드리겠습니다.

위 내용은 Angular 구성 요소 수명 주기에 대한 초보자 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿