아래 문서는 Redux 공식문서를 바탕으로 공부한 내용을 정리한 것이다.
Store는 Action과 Reducer를 가져와 작업하는 객체이다.
Redux 애플리케이션에는 단 하나의 스토어만 존재한다.
//스토어 만들기
//addText이 text를 받아 Action을 만들어내는 생성자라고 가정하자.
import { createStore } from 'redux'
import addText from './reducers'
let store = createStore(addText)
//Reducer를 인자로 받는 createStore 메소드로 Store 생성
store.dispatch(addText('Learn about actions'))
store.dispatch(addText('Learn about reducers'))
store.dispatch(addText('Learn about store'))
console.log(store.getState())
//dispatch 메소드를 통해 Store의 State를 수정할 수 있다.
//getState 메소드를 통해 Store의 State를 확인할 수 있다.
getState()
메소드를 통해 State를 받아오고,dispatch(action)
을 통해 State를 수정한다.subscribe(listener)
를 통해 Listener를 등록한다.모든 Redux 앱의 데이터는 아래와 같은 4단계의 생명주기를 따른다.
store.dispatch(action)
을 통해 action
을 store
로 보낸다.store
가 지정한 reducer
를 호출한다.reducer
가 (하위 reducer가 존재한다면 각 리듀서의 출력을 합쳐) 새로운 state
를 만든다.store
가 root reducer
에 의해 반환된 새로운 state
를 저장한다.