컴포넌트 패턴 예제

상위 지시어 [4]를 형제 구성 요소에 삽입합니다. 이렇게 하면 지침의 관찰 가능한 색상$을 참조할 수 있습니다. 색상에서 방출되는 값에 액세스하려면 비동기 파이프를 활용합니다. 이상적으로는 해당될 때마다 비동기 파이프를 사용하려고 합니다. [5] (내 기사: 비동기 파이프 깊은 다이빙) 프레젠테이션 구성 요소가 사물의 모양에 관한 경우, 컨테이너 구성 요소는 사물의 작동 방식에 더 관심이 있습니다. 컨테이너 구성 요소는 프레젠테이션 구성 요소가 렌더링해야 하는 데이터를 지정하는 구성 요소입니다. 컨테이너 구성 요소의 인스턴스는 Redux의 connect() 또는 릴레이의 createContainer()와 같은 더 높은 차수의 구성 요소를 사용하여 생성할 수 있습니다. 구성 요소의 매우 중요한 기능 중 하나는 응용 프로그램의 여러 부분에서 재사용할 수 있는 기능입니다. 아래의 코드 블록을 확인하십시오 :이 사람은 매우 간단하고 실제로 이전에 이것을 사용했지만 편리한 트릭을 한두 가지 보여줍니다. 여기서는 초기 값(의 defaultValue와 유사)을 설정한 다음 리셋 도우미 함수를 노출하여 구성 요소의 사용자가 구성 요소를 초기 상태로 재설정할 수 있도록 하는 좋은 방법을 사용할 수 있습니다. 이제 프레젠테이션 및 컨테이너 구성 요소가 어떻게 작동하는지 살펴보았으니 두 패턴을 모두 사용하여 구성 요소와 응용 프로그램을 일반적으로 더 잘 보이게 하는 방법을 살펴보겠습니다. 다음은 아직 컨테이너와 프리젠 테이션으로 분할 할 수있는 구성 요소입니다 : 우리의 남아있는 두 가지 콘크리트 구성 요소 ( 물리및 그래픽 ) 를 가져 와서 입력과 마찬가지로 인터페이스 뒤에 숨겨 봅시다 : 참고 : 스타일링 논리는 블록과 요소, 구성 요소에는 관련 스타일이 없어야 합니다.

그들의 유일한 작업은 렌더링 논리입니다. 구성 요소에 대한 스토리북이 있을 수 있지만 스타일 자체에 대해서는 생각해서는 안 됩니다. 먼저 설명된 구성 요소 개체는 항목 추가를 제어합니다: ProfileCard는 Jeff GoldBlum의 사용자 카드에 „팔로우“ 배지와 행동 유도 버튼의 `팔로우` 텍스트를 표시할지 여부를 결정해야 합니다. 커넥터에서 필요한 정보를 받은 후 논리에서 이러한 결정을 내리고 자식 구성 요소에 정보를 전달하는 논리를 담당합니다. 마이크로소프트의 XNA 게임 프레임 워크는 핵심 게임 클래스와 함께 제공. 게임 구성 요소 개체의 컬렉션을 소유 합니다. 예제에서 개별 게임 엔터티 수준에서 구성 요소를 사용하는 경우 XNA는 주 게임 오브젝트 자체의 수준에서 패턴을 구현하지만 목적은 동일합니다. TabPanel 구성 요소는 활성 패널인 경우에만 자식을 렌더링해야 합니다. 그것은 다음과 같이 구현 될 수 있습니다 – 나는 게임에서 발견이 관련이없는 패턴에 대한 다른 이름을 찾기 위해 노력했지만, „구성 요소“는 그것에 대한 가장 일반적인 용어인 것 같다.

디자인 패턴은 기존 관행을 문서화하는 것이므로 새로운 용어를 만들 수있는 사치가 없습니다. 그래서, XNA, Delta3D, 그리고 다른 사람의 발자취에 따라, „구성 요소“입니다. „컨테이너는 데이터 가져오기를 수행한 다음 해당 하위 구성 요소를 렌더링합니다. 그게 다야.“ — 제이슨 본타하지만 그들은! 나는 출시되지 않은 React 기능의 데모에 노력하고 내 모든 구성 요소는 깊은 10 콜백입니다. 슈퍼 강력한하지만 두 개 이상의 또는 그이상을 구성하는 PITA. 우리가 더 좋게 만들 수있는 방법이 있어야합니다. 구성 요소는 기존 React 구성 요소에 대해 생각할 때 생각할 수 있습니다. UI 논리를 담당하고 태그 구조를 설정하며 상태 설정이 아닐 수도 있습니다. 이 패턴의 문제는 많은 양의 복잡한 응용 프로그램 상태와 데이터를 처리해야 하는 경우 제대로 확장되지 않습니다. 컨테이너가 부풀어 오르고 테스트 및 유지 관리가 어려워집니다. 부모-자식 패턴과 마찬가지로 우리는 개인 행동주체와 상태를 유지하고 자녀에게 변경 사항을 방출하기 위해 공개 관찰을 활용합니다.