개발의 복잡성을 낮춰줌
이전 상태와 액션을 받아서 다음 상태를 반환
(previousState, action)=> newState
이전상태를 바꾸는 것이 아니라,,,,!
기존상태를 복사하고 변화를 준다음에 반환
하는일
- dispatch(action) : 액션을 리듀서로 보냄, 리듀서 함수에 자신 상태와 액션을 전달 -> 현상태를 바꿈
- getState(): 현재 상태 반환
- subscribe(listener) : 상태가 바뀔때마다 실행할 함수를 등록, listener 콜백함수
- replaceReducer(nextReducer)
- Provider : 컴포넌트에서 리덕스를 사용하도록 제공, 하나의 컴포넌트
<Provider store = {store}> <App/> </Provider>
- connect([...options]) : 컴포넌트를 리덕스에 연결하는 또 다른 함수를 반환, 옵션을 인수로 받음
connect()(todoList)
store에 연결된 새로운 컴포넌트 클래스가 반환됨, 옵션이 없으면 this.props.store로 접근 가능
- connect(
[mapStateToProps],
[mapDispatchToProps],
[mergeProps],
[options])
- state를 파라미터, 해당 컴포넌트의 props로 넘김
- dispatch 를 props로넘김
- state, dispatch 파라미터, 잘 사용되지 않음
- 객체 형태, {[pure = true],[withRef=false]}
- pure 불필요한 업데이트를 하지 않음
- getWrappedInstance() 사용하여 접근