5강 - Redux 구조 이해하기

Happhee·2021년 12월 9일
0

Redux

  • 상태를 중앙에서 관리

    개발의 복잡성을 낮춰줌

  • 모든 정보를 가지고 있음
  • redux라는 언론사 -> 제보는 store에!

React-Redux

  • 리액트와 리덕스를 연결
  • mapReduxStateToReactProps
    == mapStateToProps
  • mapDispatchToProps
    == mapReduxDispatchToReactProps

Actions

  • 어떤 작업을 할지를 담고있는 객체

Reducer

  • 변화를 일으키는 함수
  • 순수해야함
    • 비동기 함수 x
    • 인수 변경 x
    • 인수 동일 == 동일한 결과

      이전 상태와 액션을 받아서 다음 상태를 반환
      (previousState, action)=> newState

이전상태를 바꾸는 것이 아니라,,,,!
기존상태를 복사하고 변화를 준다음에 반환

Store

  • 어플리케이션의 현재 상태를 지님
  • 단하나의 스토어가 있어야 함 : createStore

하는일

  • dispatch(action) : 액션을 리듀서로 보냄, 리듀서 함수에 자신 상태와 액션을 전달 -> 현상태를 바꿈
  • getState(): 현재 상태 반환
  • subscribe(listener) : 상태가 바뀔때마다 실행할 함수를 등록, listener 콜백함수
  • replaceReducer(nextReducer)

react-redux

  • 뷰 레이어 바인딩은 it부서와 같다
  • 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() 사용하여 접근

containers

  • 실질적인 redux와 소통하는 공간
profile
즐기면서 정확하게 나아가는 웹프론트엔드 개발자 https://happhee-dev.tistory.com/ 로 이전하였습니다

0개의 댓글