리덕스 : 리엑트에서 가장 많이 사용되는 상태 관리 라이브러리, 한방향 구조!!!
- 컴포넌트 관련 로직을 다른 파일로 분리시켜서 효율적으로 관리
리덕스 기본 용어
1) 액션 : 상태에 변화가 필요하다면 액션을 일으킨다.
{
type: 'ADD_TODO', // 반드시 가지고 있어야한다.
data: {
id: 1,
text: '리덕스 배우기'
}
}
2) 액션 생성함수 : 액션 객체를 만들어주는 함수
function addTodo(data) {
return {
type: 'ADD_TODO',
data,
}
}
3) 리듀서 : 현재 상태와 액션 객체를 받아 필요하다면 새로운 상태를 리턴하는 함수 ( 이벤트 리스너라고 생각 )
const initialState = {
counter: 1,
}
function reducer(state = initialState, action) {
switch (action.type) {
case INCREMENT:
return {
counter: state.counter + 1,
}
default:
return state
}
}
4) 스토어 : 상태
5) 디스패치 : 액션 객체를 넘겨줘서 상태를 업데이트 하는 유일한 방법, 이벤트 트리거
6) 구독 : 리스너 함수를 파라미터로 넣어 호출하면 상태가 업데이트될 때마다 호출
7) 셀렉터 : react-redux에서는 상태 값을 가져올 때 사용한다.
리덕스 상태 변화의 흐름
1) Single Source of truth
: 하나의 애플리케이션 안에는 하나의 스토어만 사용한다.
2) State is read-only
: 상태를 변화시키는 방법은 오직 액션을 일으키는 것이다.
3) Changes are made with pure functions
: 변화를 일으키는 리듀서 함수는 순수한 함수여야 한다.
리엑트에서 리덕스 사용법
필요한 패키지
- redux
- react-redux
선택 패키지
- redux-actions
- immer
출처
Redux 정리
Redux란? 리덕스는 리액트에서 가장 많이 사용되는 상태 관리 라이브러리중 하나이다. 리덕스를 사용하면 컴포넌트의 상태 업데이트 관련 로직을 다른 파일로 분리시켜서 효율적으로 관리할 수
kyun2da.dev
'Development > React.js' 카테고리의 다른 글
[React] 리엑트 CSS 사용하기 (0) | 2022.01.23 |
---|---|
[React] npm vs npx (0) | 2022.01.21 |
[React] 라이프 사이클 (0) | 2022.01.21 |
[React] React.memo를 사용한 컴포넌트 리렌더링 방지 (0) | 2022.01.04 |
[React] useCallback 을 사용하여 함수 재사용하기 (0) | 2022.01.04 |