본문 바로가기
✍ 따뜻한 개발 공부

redux의 reducer와 extrareducer의 차이

by 따따시 2023. 5. 10.

 

갠플젝을 하면서 redux를 사용해서 작업을 하고 있는데 

사용자 정보를 전역상태관리를 하려고 slice부분을 만지다보니 궁금한 점이 생겼다 

 

1. reducer와 extrareducer의 차이가 뭘까?

 

reducers와 extraReducers는 Redux Toolkit에서 Redux 슬라이스를 정의할 때 사용되는 두 가지 다른 속성이다.

  1. reducers:
    • reducers는 Redux 슬라이스에 대한 '기본적인 리듀서 함수들'을 정의하는 속성이다. 
    • reducers 객체는 각각의 리듀서 함수를 특정 액션 유형에 맵핑한다. 
    • Redux 슬라이스의 액션 생성자 함수들을 사용하여 생성된 액션 객체가 디스패치되면, reducers에 정의된 해당 액션 유형에 맞는 리듀서 함수가 호출된다. 
    • 각 리듀서 함수는 현재 상태(state)와 액션 객체(action)를 인자로 받아서 새로운 상태를 반환한다. 
    • createSlice 함수로 슬라이스를 생성할 때, reducers 속성에 리듀서 함수들을 정의한다. 
  2. extraReducers:
    • extraReducers는 Redux 슬라이스에 추가적인 리듀서 함수들을 정의하는 속성이다. 
    • extraReducers 객체는 각각의 리듀서 함수를 특정 액션 유형에 맵핑한다. 
    • extraReducers는 외부 모듈에서 생성된 액션 유형에 대한 리듀서 함수를 추가할 때 사용된다. 
    • Redux 슬라이스의 액션 생성자 함수들로 생성된 액션 객체뿐만 아니라 다른 슬라이스에서 생성된 액션 객체도 extraReducers에 정의된 해당 액션 유형에 맞는 리듀서 함수를 호출할 수 있다. 
    • 각 리듀서 함수는 현재 상태(state)와 액션 객체(action)를 인자로 받아서 새로운 상태를 반환한다.
    • createSlice 함수로 슬라이스를 생성할 때, extraReducers 속성에 리듀서 함수들을 정의한다. 

 

즉, reducers는 슬라이스에 대한 기본적인 리듀서 함수들을 정의하고,

extraReducers는 슬라이스에 추가적인 리듀서 함수들을 정의하는 데 사용되는 것

둘 다 액션 유형을 매핑하여 해당 액션에 대한 상태 업데이트 로직을 정의하는데 사용된다. 

 

댓글