순수함수란 입력값에 대해 항상 동일한 출력값을 반환하는 함수로, 외부상태에 영향을 끼치는 사이드 이펙트가 없는 함수를 의미한다.
순수함수는 입력값만을 가지고 처리하기 때문에 입력값이 변경되지 않는 한 항상 같은 결과를 반환하므로 불변성을 유지하게 된다.
이때, 전달인자로 참조 자료형이 전달되는 경우 객체 자체를 변경하는 사이드 이펙트가 발생 할 수 있어 map, filter, reduce 메소드가 각광받게 되었다.
state
란 변할 수 있는 데이터를 의미하며 작동 구조 상에서 이는 상태로 적절하다고 보여진다.
예를들어 input값에 대한 value는 사용자가 입력할때마다 변경될 수 있는 값이므로 state로 적절하다. 또한 SNS에서 업로드하는 게시글 역시 유저가 업로드하는 변경 데이터이므로 state로 적절하다고 볼 수 있다.
이때 이 데이터들이 다른 컴포넌트에 끼치는 영향의 정도를 통해 전역상태인지, 지역상태인지를 구분할 수 있다.
props
란 상위 컴포넌트로부터 전달 받은 값, 즉 외부로부터 전달받은 값을 의미한다.
React에서는 props를 중간에 변경하는 것을 권장하지 않고, lifting state up(상태 끌어올리기)
를 통해 상태를 변경시키고, 변경된 상태값은 props로 내려주어 side effect를 최소화 시키는 쪽을 권장하고 있다.