요약: redux
일시: 23.07.21
장소: 더휴먼컴퓨터아트아카데미
배운 점:
Redux
JavaScript 애플리케이션의 상태 관리를 위한 예측 가능한(stateful) 상태 컨테이너 라이브러리
React와 함께 주로 사용되지만, React에 국한되지 않고 다른 프레임워크와도 함께 사용할 수 있음.
Redux의 주요 특징과 개념
1. **상태 단일 저장소(State Store)**:
- Redux는 애플리케이션의 모든 상태 데이터를 하나의 큰 상태 트리(또는 단일 저장소)로 관리
- 상태 트리는 읽기 전용(immutable)으로, 상태를 변경하기 위해서는 새로운 상태 객체를 반환하는 방식으로 처리
2. **액션(Action)**:
- 애플리케이션에서 상태 변화를 일으키기 위해 발생하는 이벤트를 나타내는 객체
- 액션은 `type` 필드를 가져야 하며, 해당 액션의 종류를 식별하는 문자열 값
- 때로는 액션에 추가적인 데이터(payload)를 포함하여 상태 변화에 필요한 정보를 제공
3. **리듀서(Reducer)**:
- 리듀서는 현재 상태(state)와 액션(action)을 받아서 다음 상태를 반환하는 순수 함수
- 애플리케이션의 모든 상태 변화 로직이 리듀서 함수에 정의
- 리듀서는 이전 상태를 변경하지 않고, 새로운 상태 객체를 생성하여 반환
4. **디스패치(Dispatch)**:
- 디스패치는 액션을 발생시키는 메서드로, 리듀서에게 상태 변화를 요청
- 액션을 디스패치하면 리듀서가 호출되어 새로운 상태가 계산되고 상태 트리가 업데이트
5. **구독(Subscribe)**:
- 상태의 변화를 감지하고 처리하기 위해 리스너를 등록하는 메서드
- 상태가 변경될 때마다 등록된 리스너들이 호출되어 UI 등을 업데이트하는 데 사용
Redux는 상태 관리를 예측 가능하고 효율적으로 만들어주는 강력한 도구로서, 복잡한 애플리케이션에서도 유용하게 활용
상태의 변화가 일어날 때마다 상태 트리를 따라 데이터가 흐르기 때문에 애플리케이션의 상태를 추적하고 디버깅하기 용이
부족한 점:
'TIL > Today I Learned' 카테고리의 다른 글
[TIL] 23.07.24 Today I Learned (0) | 2023.07.24 |
---|---|
[TIL] 23.07.23 Today I Learned (0) | 2023.07.23 |
[TIL] 23.07.20 Today I Learned / context API, redux (0) | 2023.07.21 |
[TIL] 23.07.19 Today I Learned / axios, async, await, JSON.stringify(), 전개 연산자, isActive (0) | 2023.07.20 |
[TIL] 23.07.18 Today I Learned - react-router-dom (0) | 2023.07.18 |