티스토리 뷰
오늘은 리덕스를 이용하여 상태관리를 해보는 실습을 진행하였다.
시작하기에 앞서서, 한 곳에 모든 코드를 작성하지 않고,
Redux코드를 action, reducers, store 디렉토리로 분리해주면서 코드를 작성했다.
Store.js
리덕스 확장프로그램을 사용할 경우 발생하는 에러를 방지해주는 composeEnhancers를 선언해주고,
createStore 메서드를 활용해 Reducer를 연결하며, composeEnhancers 로 에러를 방지해주며 Store를 생성해준다.
inititalReducer.js
Dispatch에게서 전달받은 Action 객체의 type값에 따라서 상태를 변경시키는 함수를 작성한다.
카트에 item을 추가하는 ADD_TO_CART, 카트에서 item을 제거하는 REMOVE_FROM_CART,
장바구니의 수량을 설정하는 SET_QUANTITY 함수를 작성해 주었다.
모든 함수들은 Object.assign() 메소드를 조작하여 구현하였다,
기존에 알고있었던 지식으로는 객체들을 모두 합치는 메소드라고만 알고 있어서,
기존에 존재하는 프로퍼티와 동일명의 프로퍼티가 오면, 둘이 합쳐진다고 생각했었는데
실제로는 이후에 온 프로퍼티로 덮어써졌다.
Object.assign({a:2},{a:3})
//내가 생각한 값 {a: [2,3]}
//실제 결과 {a: 3}
이 부분이 헷갈려서 REMOVE_FROM_CART 함수 구현에 어려움을 겪었었는데, 메소드의 정확한 기능을 알고 문제를 해결하였다,
오늘은 Store와 Reducer의 코드를 구현하였고,
월요일에는 추가적으로 Action과 useDispatch,useSelector 부분을 구현해야겠다.
'코드스테이츠' 카테고리의 다른 글
TIL 23.03.08 (0) | 2023.03.08 |
---|---|
TIL 23.03.07 (0) | 2023.03.08 |
TIL 23.02.23 (0) | 2023.02.23 |
TIL 23.02.22 (0) | 2023.02.22 |
TIL 23.02.21 (0) | 2023.02.21 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 개인 프로젝트
- 프로그래머스
- Python
- 다이나믹 프로그래밍
- dfs
- Redux
- useContext
- 코드스테이츠
- til
- 감정일기장
- SEB43
- SEB 43기
- 브루드포스
- SEB 43
- 코테
- BFS
- 인적성
- dictionary
- 프리프로젝트
- 회고
- 프로젝트
- 프론트엔드
- 스택오버플로우
- SEB43기
- React quill
- 기술면접
- 백준
- 그리디 알고리즘
- 감정 일기장
- seb
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함