Redux?
리덕스(Redux)는 리액트 애플리케이션에서 상태 관리를 효율적으로 처리하기 위한 라이브러리이다.
리덕스는 애플리케이션의 모든 상태를 중앙에서 관리하며, 상태의 예측 가능한 변화를 가능하게 한다.
리덕스는 상태의 흐름을 단순화하고, 컴포넌트 간의 데이터 공유를 용이하게 한다.
주요 개념
- 스토어 (store)
- 애플리케이션의 전체 상태를 저장하는 객체
- 상태를 읽고, 상태를 업데이트하기 이한 메서드인 dispatch, getState, subscribe를 제공
- 액션(Action)
- 상태 변경의 의도를 나타내는 객체
- 항상 type속성을 가져야하며, 선택적으로 추가 정보를 담는 payload를 포함할 수 있다.
- 리듀서 (Reducer)
- 현재 상태와 액션을 받아 새로운 상태를 반환하는 순수 함수
- 상태를 변경하지 않고 ,새로운 객체 상태를 반환해야한다.
- 디스패치 (Dispatch)
- 액션을 스토어에 보내는 메서드
- 액션이 디스패치되면, 리듀서가 호출되어 상태가 변경
- 구독 (Subscribe)
- 스토어의 상태가 변경될 때마다 특정 함수를 실행할 수 있게 해주는 메서드
- 이를 통해 상태 변화에 대한 반응을 처리할 수 있다.
리덕스 구조
/ src
/actions
/reducers
/store
/components
actions: 액션 생성자가 정의되는 파일
reducers: 리듀서가 정의되는 파일
store: 스토어 생성하는 파일
componets: 리액트 컴포넌트
리덕스 사용 방법
-
리덕스 설치
` yarn install redux react-redux
-
스토어 생성
- 리액트 컴포넌트와 연결
- 액션 생성자 정의
- 리듀서 정의
- 컴포넌트에서 상태 사용
리덕스의 장점
- 예측 가능한 상태 관리: 리덕스는 상태의 변화를 예측 가능하게 하여 디버깅과 테스트가 용이하다.
- 중앙 집중식 저장소: 모든 상태가 중앙에서 관리되므로 상태의 흐름을 쉽게 추적할 수 있따.
- 미들웨어 지원: 비동기 작업이나 로깅 등을 쉽게 추가할 수 있는 미들웨어를 지원
- 복잡한 애플리케이션에서 상태 관리를 간소화하고, 코드의 가독성과 유지보수성을 높이는 데 매우 유용한 도구이다.
context API은 복잡하지 않은 상태 관리 요구사항에 적합하고
redux는 대규모 어플리케이션에서 더 효과적이다.
여기까지 리덕스에 대한 개념 및 사용방법을 작성해보았다.