TIL: 전역 데이터 관리를 사용하는 이유 - 220811

Lumpen·2022년 8월 11일
0

TIL

목록 보기
114/242

전역 데이터 관리

프론트엔드에서의 전역 데이터 관리란
컴포넌트의 상태 데이터를 하나의 전역 스토어에서 관리하는 것을 말한다

전역 데이터가 없을 경우의 문제점

props drilling으로 코드가 굉장히 지저분해지고, 귀찮아지고, 복잡해 질 수 있다
하나의 상태 업데이트로 같은 상태를 props로 전달받은 모든 컴포넌트에서 재 렌더링이 일어난다

전역 데이터 관리를 하는 이유

없을 경우의 문제점을 해결하기 위해

한 곳에서 데이터를 모두 관리할 수 있음, 단방향 데이터 흐름을 갖는다

전역 데이터 관리 도구들

redux, recoil, mobX, zustand, jotai 등..

Redux

  • 상태 변경이 일어나면 해당 상태를 사용하는 컴포넌트에만 재 렌더링이 일어남
  • 조금 복잡한..?

MobX

  • Mobx의 observer API가 클래스형 컴포넌트를 리턴하기 때문에, Hooks는 함수형 컴포넌트에서만 사용할 수 있다는 내용의 오류가 발생, mobx-react v6 또는 mobx-react-lite를 사용하면 해결됨
  • 전역 데이터를 사용하지 않는 컴포넌트에도 접근을 하게 되어서 유닛 테스트에 부적합, context API를 활용 하길 권장함

Recoil

  • React 전용 상태 관리 라이브러리기 때문에 React 내부 스케줄러에 접근 가능
  • 가벼운 편
  • 불필요한 렌더링을 피할 수 있다

Jotai

  • React 특화 상태관리 라이브러리
  • Recoil에서 영감을 받아 바텀 업 방식 아토믹한 상태 관리?
  • 리코일과 다른 점은 atom에 key 값을 넣지 않아도 돼서 간편
  • 불필요한 렌더링을 피할 수 있다

Zustand

  • store 형태지만 보일러 플레이트가 최소화 된 방식
  • 굉장히 쉽다
  • redux와 약간은 비슷한 점이 있음
  • 상태 변경이 일어나면 해당 상태를 사용하는 컴포넌트에만 재 렌더링이 일어남

Jotai와 Zustand는 개발진이 같고, TS로 작성되어 있음
Recoil은 JS로 작성되어 있음

profile
떠돌이 생활을 하는. 실업자는 아니지만, 부랑 생활을 하는

0개의 댓글