react는 우선 상태관리를 위한 라이브러리는 아니다.
그러나 상태관리의 주요 원칙을 배우고 얘를 따라간다면, 컴포넌트간에 느슨히 결합된(loosed coupled)
구조적으로 아름다운 코드작성 가능하다.
프론트엔드에서는, UI에 동적으로 표현될 데이터.
ex) 쇼핑몰에서는 몇 개의 상태가 있을까?
🤔예상 답: 전체선택, 삭제, 전체삭제, 수량,
⭕답:
함수나 컴포넌트의 입력 외에도 '함수의 결과에 영향을 미치는 요인.'
ex) 네트워크 요청, API호출등..
*presentation component
: react의 컴포넌트는, fetch같은 api 요청없이도 작동되어야 하기때문에,
가짜데이터(fakeData)일지라도 입력으로 표현될수있어야 한다.=> 이는 UI를 페이지단위가 아닌 컴포넌트 단위로 보는것이라는 원칙에 포함된다.
그러므로, side effect에 마냥 의존해서는 안된다는것이다. 허나, 때로는 불가피하게 api호출도 해야할거고, 의존적인 상태가 발생할수가 있다.
예를들어 '로딩중' 상태를 나타낼지 안할지의 여부는, 데이터의 전송여부에 달려있다.
*로딩중 상태도 언제나 개발자는 고려해야한다.
ex) react로 상품들을 검색할수있는 데이터테이블 만들기