함수형 프로그래밍에서는 함수의 실행 결과를 예측가능하게 만드는 것이 중요하다.
결과를 예측 가능하다면 버그의 근본적인 원인인 개발자의 기대와 다르게 동작하는 상황을 방지(또는 디버깅)할 수 있다.
순수 함수와 부수 효과를 분리하여 생각하는 것이 중요함!
컴포넌트는 결국 함수다!
컴포넌트 함수의
입력 : 매개변수(props),
출력 : return()의 JSX
즉, 컴포넌트 함수 내부에 이벤트 핸들링 함수가 존재하더라도, 컴포넌트 함수의 출력 값인 JSX 마크업 생성에 영향을 주지 않기 때문에, 같은 입력 -> 같은 출력 이라는 순수함수의 조건을 만족한다.
+ 컴포넌트 함수가 실행되는 동안(렌더링하는 동안) 외부의 상태를 변경하지 않는다는 조건도 만족함.
(변경하는 것은 이벤트가 발생하여 핸들러 함수가 실행될 때)