티스토리 뷰
728x90
반응형
Mutation(변형)은 무엇인가? 말 그대로 변형을 의미한다.
이 부분은 필자의 절대적인 생각이며, 확신이 아닌 참고용이다.
필자가 생각하는 Mutation은 push, pop, join 이런 것들이지 않을까 하는 조심스러운 발언을 해본다.
(그저 필자가 javascript를 해보면서 대략적으로 이러지 않을까 하는 생각이다.
mutation을 권장하지 않는 다면 과연 리덕스에서는 무엇을 써야 하는가?
바로 새로운 state(상태)를 return을 하는 것이다. 즉, object를 return 하는 의미라고도 한다.
(사실 적으면서도 내가 이해한 부분이 맞는지 의심이 간다...)
상태를 수정하는 것이 아닌, 새로운 것을 return을 해야한다는 의미다.
(왜 이게 중요한 것일까? 사실 어떤 의미로 한건 알지만 왜? 라는 생각은 계속 든다...)
// src > index.js
// 중략
const reducer = (state = [], action) => {
console.log(action);
switch (action.type) {
case ADD_TODO:
return [...state, { text: action.text }];
case DELETE_TODO:
return [];
default:
return state;
}
};
// 중략
return 에서의 대괄호[...]는 object를 의미한다. 그리고... state는 과거의 state의 object를 가져오게 된다. 그리고 다음 중괄호 { text: action.text }는 과거의 object안의 JSON값으로 추가하는데 전체 object를 return을 하게 되는 것이다.
즉, [] = array, 배열, {} = object, 객체으로 기억을 해두면 좋을 듯 하다. ( 사실 아직도 헷갈린다...)
// src > index.js
// 중략
const reducer = (state = [], action) => {
console.log(action);
switch (action.type) {
case ADD_TODO:
return [...state, { text: action.text }];
case DELETE_TODO:
return [];
default:
return state;
}
};
const store = createStore(reducer);
store.subscribe(() => console.log(store.getState()));
// 중략
여기서 subscribe를 추가하였을 경우 다음과 같은 현상이 발생한다.
728x90
반응형
'Front-End > Javascript' 카테고리의 다른 글
javascript map함수에 대해 정리를 해보았다. (0) | 2021.08.21 |
---|---|
초보자를 위한 리덕스 101 : 삭제 기능을 추가하기 (0) | 2021.08.07 |
초보자를 위한 리덕스 101 : 초기 리덕스 설정 시도해보기 (0) | 2021.07.28 |
초보자를 위한 리덕스 101 : switch (0) | 2021.07.24 |
초보자를 위한 리덕스 101 : 바닐라 JS 그리고 리덕스 (0) | 2021.06.26 |
댓글
250x250
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자바
- 리액트 썸네일
- javascript
- github
- node.js
- 코딩테스트
- programmers
- Switch
- 파이썬
- array
- 자바스크립트
- redux
- 프로그래머스
- 노드
- CSS
- node
- Coding Test
- Visual Studio Code
- 뷰
- 재공부
- 리액트 유튜브
- mongodb
- 리덕스
- Git
- node-sass
- java
- 리액트
- react
- 함수
- 배열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함