리액트는 컴포넌트 단위로 시작하는 것이 특징입니다. 이런 컴포넌트들이 계층을 이루어 앱을 완성하게 되는데, 이때 컴포넌트 바깥에서 props 이용해 데이터를 전달받을 수 있습니다.
props를 이용하여 데이터를 전달해줄 때에는 무조건 상위 컴포넌트에서 하위 컴포넌트로 전달해 줄 수 있습니다. 이를 볼 때 데이터 흐름은 하향식임을 의미합니다.
props로 데이터를 전달받는 하위 컴포넌트는 전달받은 데이터가 어디에서 온 것인지 알 수 없습니다.
개발을 하다보면 어떠한 액션이 상위 컴포넌트의 상태를 변경해야 할 때가 있을겁니다.
이럴때는 상태 변경 함수를 하위 컴포넌트가 props로 전달받아 사용함으로 해결 할 수 있습니다.