💡 React는 지속적으로 데이터가 변화하는 대규모 애플리게이션을 만들기 위한 좋은 방법이다.



FilterableProductTable(노란색): 예시 전체를 포괄한다.SearchBar(파란색): 유저의 입력(input) 을 받는다.ProductTable(연두색): 유저의 입력(input)을 기반으로 데이터 콜렉션(data collection)을 필터링 해서 보여준다.ProductCategoryRow(하늘색): 각 카테고리(category)의 헤더를 보여준다.ProductRow(빨강색): 각각의 제품(product)에 해당하는 행을 보여준다.💡 컴포넌트 계층 구조
FilterableProductTableSearchBarProductTable ProductCategoryRowProductRowprops를 이용해 데이터를 전달한다.props는 부모 컴포넌트가 자식 컴포넌트에게 데이터를 전달할 때 사용된다.state를 사용하지 않는다.state는 시간이 지남에 따라 바뀌는 데이터를 다룰 때 사용한다.state을 생각해봐야 한다.state는 무엇인지 파악props를 통해 전달됩니까?state나 props를 가지고 계산 가능한가요?props를 통해 전달되므로 state가 아니다.props를 통해 전달되지 않으며, 시간이 지남에 따라 변하고, 다른 것들로부터 계산되지 않으므로 state이다.state가 아니다.state를 변경하거나 소유할지 찾아야 한다.
state를 기반으로 렌더링하는 모든 컴포넌트를 찾는다.- 공통 소유 컴포넌트 (
common owner component)를 찾는다. (계층 구조 내에서 특정state가 있어야 하는 모든 컴포넌트들의 상위에 있는 하나의 컴포넌트)- 공통 혹은 더 상위에 있는 컴포넌트가
state를 가져야 한다.state를 소유할 적절한 컴포넌트를 찾지 못했다면,state를 소유하는 컴포넌트를 하나 만들어서 공통 소유 컴포넌트로 추가한다.
위 전략을 애플리케이션에 적용
state를 소유해야 한다.state를 업데이트하기를 원한다.SearchBar 컴포넌트에서 상위 컴포넌트인 FiterableProductTable의 state를 변경해야 한다.props를 통해 자식 컴포넌트에게 자신의 setState함수를 호출하는 함수를 전달하면 된다.참고: React 공식문서