context api, redux, mobx, swr

Kingmo·2022년 4월 16일
0

1. Context API

React에서 부모가 가지고 있는 State 데이터를
최하위에 있는 자식 컴포넌트에 props로 넘겨주려하면
중간 중간에 있는 모든 자식 컴포넌트에게 넘겨줘야한다.

최하위 컴포넌트로 State를 보낼 뿐인데
그 중간 과정이 너무 귀찮고 번거롭다.

Context API는 이러한 과정 없이
가장 최상위에서 모든 State들을 관리하여
어떠한 컴포넌트든 중간에 props를 넘겨주는 작업 없이
State를 가져올 수 있다.

Context를 이용하면 단계마다 일일이 props를 넘겨주지 않고도 컴포넌트 트리 전체에 데이터를 제공할 수 있다.

2. 특징

Context API

  • React에서만 사용할 수 있다.
  • Entry 파일(root)에서 구성한 Provider를 내려주는 형식이다.
  • 사용하고자 하는 컴포넌트에서 작성한 Dispatch와 State를 꺼내 사용한다.
  • reducer를 여러 개 만들면 Provider에서 여러 단계로 만들어 사용할 수 있다.

Redux

  • React, Vue와 같은 프레임워크 환경에서 사용할 수 있다.
  • 상태를 저장하는 Store를 따로 가지고 있다.
  • thunk, saga와 같은 미들웨어를 추가적으로 사용하여 구성할 수 있다.
  • Redux devtool extension을 사용하면 상태에 대한 디버깅이 가능하다.
  • 전역 상태 관리 외에도 로컬스토리지 상태 저장, 버그리포트첨부 기능 등의 기능들을 사용할 수 있다.

Mobx

  • React에 종속적인 라이브러리가 아니다.
  • Redux와 다르게 store에 제한이 없다.
  • Redux에서 해줘야했던 action 선언, connext, mapStateToProps, mapeDispatchToProps등 번거로운 작업들을 데코레이터로 간단히 대체할 수 있다.
  • Mobx는 절대적으로 필요한 경우에만 state를 변경한다.
  • Typescript를 기반으로 만들어졌다.

SWR

  • Websocket 만큼 정확한 Realtime은 아니지만 polling 방식을 이용해 그에 준하게 적절한 타이밍에 데이터를 갱신한다.
  • SWR은 데이터를 fetch하는 방식에 관여하지 않는다. 이 방법은 개발자가 정의할 수 있기 때문에 Rest API, GraphQL 어느 방식이든 이용가능하다.
  • SWR은 서버의 데이터를 갱신하고 이를 컴포넌트에게 시기적절하게 제공해 주는 데에만 관심을 가진다.

참조1
참조2
참조3

profile
Developer

0개의 댓글