IT story

Angular 2 구성 요소 생성자 대 OnInit

hot-time 2020. 9. 9. 20:15
반응형

Angular 2 구성 요소 생성자 대 OnInit [중복]


이 질문에 이미 답변이 있습니다.

처음에 구성 요소가로드 될 때마다 x 함수가 발생하도록하려면 다른 사이트로 이동하여 뒤로 이동하거나 구성 요소가 다섯 번째로로드 될 때마다 수행합니다.

함수 x를 무엇에 넣어야합니까? 구성 요소 생성자 또는 OnInit?


생성자는 typescript 클래스의 미리 정의 된 기본 메서드입니다. Angular와 constructor. 일반적으로 constructor일부 변수를 정의 / 초기화하는 데 사용 하지만 Angular의 바인딩과 관련된 작업이 있으면 Angular의 ngOnInit라이프 사이클 후크 로 이동합니다 . ngOnInit생성자 호출 직후에 호출됩니다. 생성자에서 동일한 작업을 수행 할 수도 있지만 ngOnInitAngular의 바인딩을 시작하는 데 사용 하는 것이 좋습니다 .

사용 ngOnInit하려면 코어 라이브러리에서이 후크를 가져와야합니다.

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

그런 다음 내 보낸 클래스를 사용하여이 인터페이스를 구현합니다 (이 인터페이스를 구현해야하는 것은 아니지만 일반적으로 수행했습니다).

둘 다 사용하는 예 :

export class App implements OnInit{
  constructor(){
     //called first time before the ngOnInit()
  }

  ngOnInit(){
     //called after the constructor and called  after the first ngOnChanges() 
  }
}

자세한 내용 은 생성자와 ngOnInit의 차이점을 참조하십시오.


첫 번째 (생성자)는 클래스 인스턴스화와 관련이 있으며 Angular2와 관련이 없습니다. 생성자는 모든 클래스에서 사용할 수 있음을 의미합니다. 새로 생성 된 인스턴스에 대해 초기화 처리를 할 수 있습니다.

두 번째는 Angular2 구성 요소의 수명주기 후크에 해당합니다.

  • ngOnChanges 입력 또는 출력 바인딩 값이 변경 될 때 호출됩니다.
  • ngOnInit 첫 번째 이후에 호출됩니다 ngOnChanges

따라서 ngOnInit함수의 초기화 처리가 구성 요소의 바인딩 (예 :로 정의 된 구성 요소 매개 변수 @Input) 에 의존 하는 경우 사용해야 합니다 . 그렇지 않으면 생성자로 충분합니다.


constructor()typescript 기능이며 new SomeClass(). 생성자는 클래스 계층 구조에서 적절한 필드 초기화 순서를 보장합니다.

ngOnInit 컴포넌트 빌드를 완료하고 바인딩을 평가하고 처음으로 입력을 업데이트 한 후 Angular에서 호출하는 Angular2 라이프 사이클 메서드입니다.

생성자와 ngOnInit의 차이점 도 참조하십시오.

참고 URL : https://stackoverflow.com/questions/35845554/angular-2-component-constructor-vs-oninit

반응형