일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 프로그래머스
- 2638번 치즈
- JavaScript
- dfs
- ssh
- 1389번 케빈 베이컨의 6단계 법칙
- 리덕스
- level0
- 백준 1068
- Redux
- 백준
- 1937번 욕심쟁이 판다
- 기지국 설치 자바스크립트
- 부녀회장이 될 테야
- 24480번
- 알고리즘
- 우선순위 큐 자바스크립트
- 힙 자바스크립트
- 기지국 설치 js
- 자바스크립트
- React
- 알고리즘 수업-깊이 우선 탐색1
- 13023번 ABCDE
- 2275번
- 백준 13023번
- 백준 2638번
- 1303번
- level1
- Java
- 백준 1068번 트리
- Today
- Total
코딩왕랄프👊🏻
[React] Redux 란 본문
Redux란 ?
Redux 는 React에서 주로 사용하는 상태 관리 라이브러리 입니다.
Redux 를 사용하면 컴포넌트들의 상태 관련 로직들을 다른 파일들로 분리시켜서 더욱 효율적으로 관리 할 수 있으며 글로벌 상태 관리도 손쉽게 할 수 있습니다.
다음은 Redux에서 주로 접하게 되는 키워드 들에 대해 알아보겠습니다.
Action 액션
상태에 어떠한 변화가 필요하게 될 땐, 우리는 액션이란 것을 발생시킵니다.
이는, 하나의 객체로 표현되는데 액션 객체는 다음과 같은 형식으로 이뤄져있습니다.
액션은 type 필드는 필수로 가지고 있어야 하고, 그 외에는 자유롭게 넣을 수 있습니다.
{
type: "CHANGE_INPUT",
text: "안녕하세요"
}
{
type: "ADD_TODO",
data: {
id: 0,
text: "리덕스 배우기"
}
}
Action Creator 액션 생성 함수
액션을 만드는 함수입니다. 단순히 파라미터를 받아와서 액션 객체 형태로 만들어 줍니다.
리덕스를 사용 할 때 액션 생성함수를 사용하는것이 필수적이진 않습니다. 액션을 발생 시킬 때마다 직접 액션 객체를 작성할수도 있습니다.
export function addTodo(data) {
return {
type: "ADD_TODO",
data
};
}
// 화살표 함수로도 만들 수 있습니다.
export const changeInput = text => ({
type: "CHANGE_INPUT",
text
});
Reducer 리듀서
리듀서는 변화를 일으키는 함수입니다. 리듀서는 두가지의 파라미터를 받아옵니다.
리듀서는, 현재의 상태와 전달 받은 액션을 참고하여 새로운 상태를 만들어서 반환합니다.
리덕스를 사용 할 때에는 여러개의 리듀서를 만들고 이를 합쳐서 루트 리듀서 (Root Reducer)를 만들 수 있습니다. (루트 리듀서 안의 작은 리듀서들은 서브 리듀서라고 부릅니다.)
function reducer(state, action) {
// 상태 업데이트 로직
return alteredState;
}
function counter(state, action) {
switch (action.type) {
case 'INCREASE':
return state + 1;
case 'DECREASE':
return state - 1;
default:
return state;
}
}
Store 스토어
리덕스에서는 한 애플리케이션당 하나의 스토어를 만들게 됩니다.
스토어 안에는 현재의 앱 상태와 리듀서, 몇가지 내장 함수들이 있습니다.
import propertyTypeSlice from './slices/propertyTypeSlice';
import { combineReducers, configureStore } from '@reduxjs/toolkit';
const rootReducer = combineReducers({
propertyType: propertyTypeSlice.reducer,
personInfo: personInfoSlice.reducer,
});
export const createStore = () =>
configureStore({
reducer: rootReducer,
});
export const store = createStore();
Dispatch 디스패치
디스패치는 스토어의 내장함수 중 하나입니다. 디스패치는 액션을 발생 시키는 것 이라고 이해하시면 됩니다.
dispatch 라는 함수에는 액션을 파라미터로 전달합니다. -> dispatch(action)
그렇게 호출을 하면, 스토어는 리듀서 함수를 실행시켜서 해당 액션을 처리하는 로직이 있다면 액션을 참고하여 새로운 상태를 만들어줍니다.
'React' 카테고리의 다른 글
[React] Redux 사용하기 (0) | 2023.07.06 |
---|---|
[React] React를 nginx로 배포하기 (0) | 2022.03.08 |
[React] React 프로젝트를 휴대폰으로 확인하는 법 (0) | 2022.03.01 |
[React] 리액트에서 Fontawesome 사용하기 (0) | 2022.02.28 |
[React] 컴포넌트 종류 (0) | 2022.02.28 |