전역 상태 관리

.·2022년 6월 30일
0

blog

목록 보기
18/52

[0] 전역 상태 관리

  • 전역 상태 관리를 사용하면 보안에 안좋다는 이야기가 있다.

  • 리액트에서는 지역 상태로 관리하는 것을 권장한다.

  • 서버에서 받아오는 데이터와 UI를 담당하는 전역 상태는 분리해서 구분해둔다.

[1] context API

  • 컴포넌트를 감싼 트리 전체에 props를 넘겨주지 않고서 전역적으로 상태를 관리할 수 있는 기본 api이다.

  • 라이브러리를 추가적으로 설치하지 않아도 된다.

  • context api는 컴포넌트를 감싸고 있어서 상태값이 변하면 렌더링이 감싼 내용 모두가 렌더링이 된다는 단점이 있다.

[2] redux

  • 상태관리의 대표 라이브러리

  • 사용하기에 러닝 커브가 높고 상태관리를 사용하기 위해서 초반에 설정을 해야할 것이 많다.

  • 리덕스를 사용하기 좀 더 편리하기 위해서 리덕스 툴킷이라는 라이브러리가 존재한다. 하지만 그래도 초반에는 사용하기 어렵다.

[3] mobx

  • 사용을 안해봐서 모르겠지만 객체지향을 다루어 본 사람이라면 이해가 쉬울 것 같은 라이브러리이다.

  • 객체 지향적인 느낌이 든다.

  • 자바에서 사용하는 어노테이션과 같은 데코레이터 패턴을 지원한다.

  • 싱테 깂은 클래스의 메소드로 변경을 하고, 설정은 configuration에서 , 도메인 모델끼리는 message를 통해서 상호작용을 한다고 한다.

[4] swr(State While Revalidate)

  • zeit(Nextjs 개발)에서 만든 상태 관리 라이브러리

  • 캐시를 이용하여 화면에 보여주어 불필요한 데이터를 호출하지 않아도 되고 빠른 렌더링을 할 수 있다.

  • 효율적인 데이터 전송이나 불필요한 리렌더링을 방지해주는 것 같다.

[5] react-query

react-query + recoil을 같이 사용해서 rest api를 처리한다.

Apollo-Client + recoil 을 같이 사용해서 graphQL을 처리한다.

  • 기존의 리덕스에서는 값을 불러오고 저장하고 꺼내오는 작업을 일일이 다 해주어야 했는데 반 자동화가 되었다.

[6] recoil

  • atom 이라는 조각으로 만들어서 참고하는 컴포넌트들만 렌더링 시키는 라이브러리

  • 사용하기 매우 간단하며 리액트 전용으로 사용되는 라이브러리

[7] zustand

  • 독일어로 상태를 의미하면 "주스탄드"라고 읽으면 된다.
  • Provider로 감싸지 않아도 사용이 가능하다고 한다.
  • 상태를 변경하는 액션(리덕스에도 존재)을 만들어서 상태값을 변경하는 방법을 정의한다.
  • 최근에 사용자가 늘고있는것으로 보아 성능이 좋다고 판단된다.

[참조]

Mobx와 redux 비교

SWR

zustand

0개의 댓글