redux toolkit

topics 200-프론트개발 201 React 206 상태관리
types 학습 도구
tags

Redux Toolkit

리덕스

// 액션 타입
const INCREMENT = 'INCREMENT';

// 액션 생성 함수
const increment = () => ({ type: INCREMENT });

// 리듀서
const counterReducer = (state = 0, action) => {
  switch (action.type) {
    case INCREMENT:
      return state + 1;
    default:
      return state;
  }
};

// 스토어 생성
import { createStore } from 'redux';
const store = createStore(counterReducer);

리덕스 툴킷

import { createSlice } from '@reduxjs/toolkit';

const counterSlice = createSlice({
  name: 'counter',
  initialState: 0,
  reducers: {
    increment: (state) => state + 1,
    decrement: (state) => state - 1,
  },
});

export const { increment, decrement } = counterSlice.actions;
export default counterSlice.reducer;

// 이후 위처럼 리듀서를 등록
  • createSlice : createReducer + createAction
    • 함수이름으로 액션을 자동으로
  • 불변성 유지해줌 . push같은거 써도 알아서 처리해줌
    • 다중리스트일때 유용할둣