리덕스 툴킷이란?
리덕스 툴킷 라이브러리는 리덕스팀의 세가지 걱정을 해결하기 위해 등장하였다.
- 리덕스 스토어를 구성하는 것은 너무 복잡하다.
- 리덕스가 유용해지려면 많은 패키지들을 추가로 설치해야한다.
- 리덕스는 너무 많은 보일러플레이트 코드를 요구한다.
이 세가지를 해결한 것이 리덕스 툴킷이라는 라이브러리로 리덕스를 훨씬 쉽고 간편하게 사용할 수 있다. 이제 리덕스 툴킷을 어떻게 쓰는지 또, 어떻게 위의 문제점들을 해결했는지 살펴보도록 하자.
설치
npm install @reduxjs/toolkit react-redux
리덕스 툴킷 API
- configureStore: 리덕스 createStore함수와 비슷한 함수로, 간단화된 구성 옵션과, 기본 구성을 제공한다. slice reducer를 자동으로 합치고, 미들웨어를 추가할 수 있으며, redux-thunk를 기본적으로 제공한다. 또한 redux devtools Extension 사용이 가능하다.
- createReducer: 리듀서 함수를 switch 구문으로 쓰기보다는, 리듀서 함수를 계속쓰는 lookup table 방식을 쓸 수 있게 해주고, immer라이브러리가 내장되어 있어서 mutative한 코드를 작성할 수 있도록 해준다.
- createAction: 주어진 액션 타입 문자열로 액션 크리에이터 함수를 생성해준다. 함수 자체에 toString()이 정의되어 있어서 constant 타입 대신 사용이 가능하다.
- createSlice: reducer 함수, slice 이름, 초깃값을 넣을 수 있고 action creator와 action type을 가진 slice reducer를 자동으로 생성해준다.
- createAsyncThunk: redux-thunk의 대체재
- createSelector: reselect 라이브러리의 유틸리티 기능과 동일
리덕스 툴킷 장점
- action type이나 action creator를 따로 생성해주지 않아도 된다.
- immer가 내장되어 있어 mutable 객체를 사용해도 된다.