리액트를 명령형으로 짜면 안되는 이유? 예시코드로 알아보자! (+ 선언적 코드로 리팩토링 해보기)
선언적 프로그래밍
- 원하는 결과를 명시하고 그 결과를 얻기 위한 구체적인 단계는 추상화.
- 무엇을 할지에 초점.
- 프로그램의 로직을 직접 기술 하지 않고, 원하는 결과를 설명
명령형 프로그래밍
- 프로그램의 상태를 변경하는 명령문의 시퀀스로 구성
- 어떻게 할지에 초점을 맞춤
- 목표를 달성하기 위한 각 단계를 상세히 기술
철학에서의 차이점 → 구현에서의 차이점
명령형 프로그래밍에서 설계한 경우에는 컴포넌트에 상태와 메서드 등 상태가 일치되지 않을 수 있다.
- 상태 관리 로직을 커스텀 훅으로 분리
- 비동기 작업을 선언적으로 처리
- 컴포넌트를 더 작은 단위로 분할
리액트 컴포넌트 설계 잘하는 방법?