티스토리 뷰
이전 시간은 createAction 을 사용하여 반복되는 코드와 전체적인 코드의 양을 줄이기위해
이전 보다는 새로운 방식인 createAction 을 사용하였습니다.
하지만 Switch Case 와 default return 의 코드를 여전히 사용하였는데 , createReducer 를 사용하면
이또한 코드의 양을 최적화 할수있습니다.
다소 복잡하게 느낄수있기에 이전 코드들의 변화를 익히시고 사용하는것이 좋습니다.
모두다 같은 기능을 하기에 어떤 코드를 사용하여도 문제가 되진않지만 다만 더적은양으로 같은기능을 구현하기위해
도전 하길원한다면 사용해보시길..
(주석된 코드가 이전코드이며 그아래는 바뀐 코드입니다)
https://redux-toolkit.js.org/api/createreducer
createReducer | Redux Toolkit
redux-toolkit.js.org
(자세한 내용은 해당 링크로 들어가시면 됩니다)
createReducer 를 사용하면 기존코드보다 확실히 코드의 양에서도 차이가있지만,
제일 큰차이는 이전코드에서는 꼭 새로운 state 로 return 하였지만,
위 코드 addToDo 쪽을 보면 state.push ( ) 로 데이터를 mutate 하게 할수있습니다
확실히 불변성을 지키기위해 ES6 spread 를 통해 copy 하여 새로운 state를 return 한 것과는 다르게 보입니다
하지만 Redux toolkit 과 immer( 자세히는 모르지만) 가 mutate 한 코드 를 우리가 보지못하는 내부에서 다시
예전같은 ( return [{ text: action.payload, id: Date.now() },...state] ) 코드로 변환해서 실행해줍니다.
어렵게 느껴지는 문법때문에 사용자가 조금이라도 쉽게 사용할수 있게 편의 를 봐준 것으로 보입니다.
그렇다고 return 을 사용못하는것은 아니고, 아래 deleteToDo 쪽을보면 return 하는 코드가 적혀있는데,
이렇게 mutable 한 코드와 immutable 한 코드 2가지를 적절하게 사용할수 있게 되었습니다.
어려우면 편한거 쓰셔도 됩니다 .
확실한건 Redux Toolkit 사용 전과 후의 전체적인 코드의양이 40%정도 줄어든다는점. . 참고하시길..
-- 잘못된 부분이 있다면 댓글 부탁드립니다 --

'Redux' 카테고리의 다른 글
React-Redux (useSelector , useDispatch) 사용법 (0) | 2022.03.01 |
---|---|
React-Redux (Redux Toolkit createAction 사용법) (0) | 2022.02.28 |
React-Redux (mapStateToProps(ownProps) vs useParams( ) ) (0) | 2022.02.28 |
React-Redux 삭제 방법 2 (추가글) (0) | 2022.02.28 |
React-Redux 사용방법 (0) | 2022.02.26 |
- Total
- Today
- Yesterday
- Java
- set
- Stack Area
- e.getMessage()
- java문자열배열
- java 배열 출력
- java 예외
- Heap Area
- java멤버변수
- e.toString()
- Scanner 와 BufferedReader 차이
- 자바
- publi
- 오버로딩
- nexLine
- react-redux
- java최대값최소값
- 클래스변수 인스턴스변수 차이
- 클래스영역
- Method 영역
- map set 변환
- List Set 변환
- Dispatch
- java숫자형배열
- java전역변수
- mapDispatchToProps
- redux
- e.printStackTrace()
- final 변수 초기화
- 기본형타입
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |