일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 바이트디그리
- 노마드코더
- bucket list
- object-oriented programming
- 내일배움카드
- 리액트
- 버킷리스트
- ENFJ
- free react course
- redux
- nomadcoders
- react
- CSS
- 국비지원
- React & Redux로 시작하는 웹 프로그래밍
- class
- JavaScript
- HTML
- 코딩
- 패스트캠퍼스
- 무료리액트강의
- 객체지향
- REACT강의
- 반응형 이메일
- 반응형
- 이메일 코딩
- ENFJ포스팅
- 자바스크립트
- K디지털기초역량훈련
- Today
- Total
미미 공부/취미방
[코딩일기] Redux combineReducers(), createStore() 흐름 이해 본문
Redux의 combineReducers()
여러 파일에 나눠서 작성한 리듀서즈(reducers)를 합치는 역할을 한다.
[actions.js]
todo의 상태를 관리하는 action(addTodo, completeTodo)과
filter를 관리하는 action(showAll, showComplete)이 있다.
// export와 export default의 차이점?
[reducers/todos.js]
todo의 상태를 관리하는 action을 받아서 'todos.js' reducer를 만들었다.
(addTodo랑 completeTodo)
[reducers/filter.js]
[reducers/reducers.js]
reducers를 합쳐준다.
1. filter.js와 todos.js에서 만든 reducers 함수를 하나로 합쳐준다.
2. createStore에 사용하기 위해 export 한다.
(reducers가 특별한 일을 하는 건 아니고 그냥 거쳐가는 느낌)
[store.js]
store를 만들어 준다.
1. 합친 reducers를 todoApp이라는 이름으로 import한다.
2. todoApp을 createStore()에 전달한다.
(createStore()는 'dispatch()', 'subscribe()', 'getState()'라는 함수를 갖고 있다.)
=> createStore()는 filter.js와 todos.js reducers 함수를 받아서 준비된 상태
[index.js]
store.dispatch()에 '함수'를 인자로 전달.
전달하는 함수는 action에 있는 객체를 만드는 함수!
1. action에 있는 객체를 만드는 함수를 받는다.
2. 받은 action 함수를 store에 전달한다. store는 'createStore()'라는 함수를 갖고 있다.
createStore()에는 '함수'를 인자로 전달한다.
(createStore()는 'dispatch()', 'subscribe()', 'getState()'라는 함수를 갖고 있다.)(createStore()는 todoApp이라는 combine된 reducers의 함수들을 갖고 대기 중)
store.dispatch(addTodo('할일')은,store.dispatch(createStore(todoApp([...previousState, {text: function addTodo ('할일') > text : '할일', done: false}]));
이런 식으로 연결되어 dispatch 된다!
'Programming > Journal' 카테고리의 다른 글
[코딩일기] 스프레드 연산자 (0) | 2023.07.02 |
---|---|
[코딩일기] 호환성 vs 최신 기능 (0) | 2023.07.01 |
[코딩일기] Redux를 공부하면서 (0) | 2023.06.30 |