2025. 4. 22. 22:19ㆍCoding Study/React
1. Redux ToolKit
Redux 를 좀 더 쉽게 사용할 수 있도록 만들어진 라이브러리로 공식문서에서도 RTK 를 사용할 것을 권장
2. 설치
npm install @reduxjs/toolkit react-redux
3. 왜 Redux Toolkit 인가?
기존 Redux 에서는
Action Type 작성
Action 생성자 작성
Reducer 작성
을 했지만 RTK 에서는 CreateSlice 함수 하나로 가능
그리고
Combine Reducers 후 createStore 작성 하는 것도 configureStore 함수 하나로 가능 하다.
4. 사용방법
1) createSlice
슬라이스 객체는 name, initalState , reducers 라는 3개의 필드가 있어야 함
import { createSlice } from '@reduxjs/toolkit';
const counterSlicer = createSlice({
name: "Counter", // Slice 의 이름
initialState: 0, // state 초기값
reducers: { // Reducer
increment(state, action) { // action 1
return state + action.payload;
},
decrement(state, action) { // action 2
return state - action.payload;
},
},
});
diapatch(counterSlicer.action.increment( 인자 )) 에 인자를 전달하면 action.payload 에 인자의 값이 들어가 있다.
2) configureStore
이제 여기에 여러개의 reducer 를 넣어서 store 에 전달 하면 된다.
import { configureStore } from '@reduxjs/toolkit';
const store = configureStore({
reducer: {
counter: counterSlicer.reducer, // counterSlicer의 reducer 로 counter 값을 관리
},
});
이제 상태를 꺼내오고 변경 하면 된다. 다음음 Redux 와 동일하다.
적용한 컴포넌트를 Provider 로 감싸고
import { Provider } from "react-redux";
<Provider store={store}>
<App />
</Provider>
configureStore 의 반환값을 받은 store의 state 중 counter 값을 가져온다.
import { useSelector } from "react-redux";
const counter = useSelector((state) => state.counter); // Store의
// counter 값을 가져온다.
Dispatch 후 createSlice 함수의 Reducers 함수에 인자로 전달하면 action 값으로 전달되어 상태가 변경된다.
const dispatch = useDispatch();
<div>counter: {counter}</div>
<button onClick={() => dispatch(counterSlicer.actions.increment(1))}>
+
</button>
<button onClick={() => dispatch(counterSlicer.actions.decrement(-1))}>
-
</button>'Coding Study > React' 카테고리의 다른 글
| react 어플리케이션 성능 최적화 (1) | 2025.04.24 |
|---|---|
| 번들링과 코트스플리팅 (1) | 2025.04.24 |
| 전역상태 관리 Redux (0) | 2025.04.22 |
| Tailwind CSS - React 에서 스타일링하기 3 (1) | 2025.04.17 |
| Styled Component-React 에서 스타일링하기 2 (1) | 2025.04.17 |