✍ 따뜻한 개발 공부
redux의 reducer와 extrareducer의 차이
따따시
2023. 5. 10. 20:52
갠플젝을 하면서 redux를 사용해서 작업을 하고 있는데
사용자 정보를 전역상태관리를 하려고 slice부분을 만지다보니 궁금한 점이 생겼다
1. reducer와 extrareducer의 차이가 뭘까?
reducers와 extraReducers는 Redux Toolkit에서 Redux 슬라이스를 정의할 때 사용되는 두 가지 다른 속성이다.
- reducers:
- reducers는 Redux 슬라이스에 대한 '기본적인 리듀서 함수들'을 정의하는 속성이다.
- reducers 객체는 각각의 리듀서 함수를 특정 액션 유형에 맵핑한다.
- Redux 슬라이스의 액션 생성자 함수들을 사용하여 생성된 액션 객체가 디스패치되면, reducers에 정의된 해당 액션 유형에 맞는 리듀서 함수가 호출된다.
- 각 리듀서 함수는 현재 상태(state)와 액션 객체(action)를 인자로 받아서 새로운 상태를 반환한다.
- createSlice 함수로 슬라이스를 생성할 때, reducers 속성에 리듀서 함수들을 정의한다.
- extraReducers:
- extraReducers는 Redux 슬라이스에 추가적인 리듀서 함수들을 정의하는 속성이다.
- extraReducers 객체는 각각의 리듀서 함수를 특정 액션 유형에 맵핑한다.
- extraReducers는 외부 모듈에서 생성된 액션 유형에 대한 리듀서 함수를 추가할 때 사용된다.
- Redux 슬라이스의 액션 생성자 함수들로 생성된 액션 객체뿐만 아니라 다른 슬라이스에서 생성된 액션 객체도 extraReducers에 정의된 해당 액션 유형에 맞는 리듀서 함수를 호출할 수 있다.
- 각 리듀서 함수는 현재 상태(state)와 액션 객체(action)를 인자로 받아서 새로운 상태를 반환한다.
- createSlice 함수로 슬라이스를 생성할 때, extraReducers 속성에 리듀서 함수들을 정의한다.
즉, reducers는 슬라이스에 대한 기본적인 리듀서 함수들을 정의하고,
extraReducers는 슬라이스에 추가적인 리듀서 함수들을 정의하는 데 사용되는 것
둘 다 액션 유형을 매핑하여 해당 액션에 대한 상태 업데이트 로직을 정의하는데 사용된다.