TL; DR각도 2 : "글로벌"라이프 사이클 후크?
우리는 각도 2 응용 프로그램을 구축하고, "글로벌"ngOnInit
및 ngOnDestroy
기능을 등록하려고합니다. "글로벌"이라는 말은 함수가 모든 컴포넌트에 대해 명시 적으로 구현 될 필요없이 모든 컴포넌트에 대해 실행된다는 의미입니다. 이것이 가능한가?
은 자세한 우리의 구성 요소
일부 (전부는 아니지만) 그들이 (예를 들어, ngOnDestroy
)를 언로드되면, 그들은 (예를 들어, ngOnInit
)로드되면 글로벌 서비스에서 뭔가를 등록하고 다시 등록을 취소해야합니다.
- 이 (
ngOnInit
및ngOnDestroy
에) 그렇게해야하는 모든 구성 요소에서이 논리를 구현 : 여기에 내가 생각할 수있는 두 가지 방법이 있습니다. - 등록/등록 해제가 필요한 하위 클래스로 구현 된 추상 메소드를 호출하는 기본 클래스에서이 논리를 구현합니다.
두 가지 접근법은 정말 만족하지 : 첫 번째에서
- 내가 또 다시 전체 로직을 구현해야합니다. 예, 알아요, 보일러 판을 도우미 수업에 넣을 수 있어요. 그러나 이것은 약간 암묵적으로 보이며, 일정한 각도의 라이프 사이클에서 "숨겨져 있습니다". 말하기 이름 (예 : 인터페이스/기본 클래스)을 갖는 것이 더 명확하게 보입니다.
- 둘째로 모든 클래스는 동일한 공통 기본 클래스를 확장해야합니다. 하지만 다른 기본 클래스 (다중 상속)를 확장해야한다면 어떻게 될까요?
이 왜 필요한 모든 구성 요소에 의해 구현 될 수있는 인터페이스로 위에서 언급 한 추상 클래스를 대체하지 : 나는 다음과 같은 아이디어를 내놓았다 왜
. 그런 다음 가능한 모든 요소 (예 : 모듈, 라우팅 등)의 모든 ngOnInit
및 ngOnDestroy
에서 실행되는 전역 함수를 등록합니다. 함수에서 구성 요소가 인터페이스를 구현하고 있는지 확인한 다음 적절한 함수를 호출하여 유형 특정 물건을 등록하십시오. 2 각도 수
내 질문에
- 이렇게? 나는. "글로벌 라이프 사이클 후크"(또는 그와 비슷한 것)를 등록 할 수 있습니까?
- 아니면 완전히 잘못된 접근 방식입니까?
- 다른/더 좋은 아이디어가 있습니까?