0

내 파트너와 저는 최고 수준의 구성 요소 (AppComponent)에 응용 프로그램 전체에서 지속되는 구성 요소 (UndoComponent라고 부름)가있는 Angular 4 응용 프로그램을 개발하고 있습니다. AppComponent에 라우터 콘센트가 있고이 예제에서는 라우터가 현재 ContentComponent를 표시하고 있다고 가정 해 보겠습니다.각도 확장 구성 요소 상호 작용

ContentComponent의 항목이 UndoComponent와 통신해야하는 경우가 있습니다. 예를 들어 특정 이벤트가 발생하면 UndoComponent 내부의 스택에 일부 정보를 푸시 할 수 있습니다. 따라서 우리는 ContentComponent가 UndoComponent의 스택을 업데이트하도록 AppComponent에 알리기 위해 무언가를해야 할 필요가 있습니다.

공유 서비스와 Observables를 사용하여 하위 (특히 라우팅 된 하위 구성 요소)에서 상위 항목을 업데이트 할 수 있음을 알고 있지만 내 파트너는 ContentComponent를 확장하여 AppComponent를 확장 한 다음 AppComponent 내에서 메소드를 사용하여 UndoComponent

이 솔루션에 대해 불안해합니다. 부모/자식 통신에 대해 구성 상속을 사용해야하는 이유 또는 사용해야하지 않는 이유에 대한 정보를 찾을 수 없습니다. 이러한 방식으로 업데이트하는 것이 훨씬 쉬워 졌기 때문에 이러한 유형의 업데이트를 수행하기 위해 서비스에서 관찰 가능 항목을 생성하지 않아도 될 것이라고 생각합니다.

생각하십니까?

답변

1

나는 Observables와 서비스를 사용하고 있으며, 대부분의 개발자는 동의 할 것이라고 생각합니다. 나는 다른 접근법, 특히 특이한 상황을 시도하는 것의 이점을 보지 못한다. 문서는 구성 요소 간 통신을 위해 서비스를 사용하여 윤곽을 잡습니다. 또한 서비스를 사용하면 모든 업데이트에서 솔루션을 다시 평가하지 않아도됩니다. 예를 들어, 현재 라우트 된 구성 요소를로드하는 단일 라우터 콘센트가 있지만 대신 하위 라우트가있는 라우트 된 구성 요소로 변경하면 어떻게됩니까? 어떻게 그 필터를 다시 UndoComponent를 업데이 트하는 것입니다. 서비스가있는 경우 서비스를 계속 주입하면 라우터 출력이 얼마나 깊은 지 또는 예측할 수없는 다른 변경 사항과 상관없이 아무런 노력 없이도 계속 작동합니다.

+0

감사합니다. 이 방법이 우리의 구현을 구성 요소와 라우팅 구조에 결합시키는 방법에 대해서는 생각하지 않았습니다. –