필수라하기는 좀 애매한듯 구조를 잘잡으면 프롭스 몇개만 전달하게만 하는 방식도 봤었음 내가 한거 기준에선 구조가 중간에 엎어지는 바람에 새로 만들수 없어서 리덕스를 채용하면 좋았던 경우에 해당되는 듯함 리덕스가 필수가 아니긴한데 쓰면 좋은거라 생각하는게 좋을듯 다른거 개발하는 거랑 마찬가지로 개발할때의 편의성을 위한거니까
그래서 가능한 한 prop을 아래로 내리는게 좋고 실제로 소규모 프로젝트면 이걸로도 충분함
Redux recoil zustand 이런건 물론 쓰면 편하지만 그 리액트 특유의 순수성과 상태변화라든지 그런 개념을 충분히 체득하고 넘어가야 그런 상태변화 라이브러리도 옳게 쓰는 법을 배우기 쉽다고 생각함
리액트 state라든지 리덕스에서 말하는 reduce가 부작용 없는 함수형 프로그래밍의 개념이랑 비슷함
간단히 말하면 같은 입력을 넣었을때 항상 같은 출력이 나와야 한다는 약속인데, 리액트에서도 같은 prop과 state를 넣으면 항상 렌더링 결과물이 같아야 한다고 약속되어 있는거임
그래서 state나 prop의 변화 없이 그냥 변수 값을 수동으로 조작해버리면 렌더링이 발생하지 않음. 왜냐면 걔들은 렌더링에 들어가는 인풋이 아니라, 렌더링 중에 조작한 부산물이기 때문에 고려를 하지 않게 되는거임