전역 상태 관리를 사용하면 보안에 안좋다는 이야기가 있다.
리액트에서는 지역 상태로 관리하는 것을 권장한다.
서버에서 받아오는 데이터와 UI를 담당하는 전역 상태는 분리해서 구분해둔다.
컴포넌트를 감싼 트리 전체에 props를 넘겨주지 않고서 전역적으로 상태를 관리할 수 있는 기본 api이다.
라이브러리를 추가적으로 설치하지 않아도 된다.
context api는 컴포넌트를 감싸고 있어서 상태값이 변하면 렌더링이 감싼 내용 모두가 렌더링이 된다는 단점이 있다.
상태관리의 대표 라이브러리
사용하기에 러닝 커브가 높고 상태관리를 사용하기 위해서 초반에 설정을 해야할 것이 많다.
리덕스를 사용하기 좀 더 편리하기 위해서 리덕스 툴킷이라는 라이브러리가 존재한다. 하지만 그래도 초반에는 사용하기 어렵다.
사용을 안해봐서 모르겠지만 객체지향을 다루어 본 사람이라면 이해가 쉬울 것 같은 라이브러리이다.
객체 지향적인 느낌이 든다.
자바에서 사용하는 어노테이션과 같은 데코레이터 패턴을 지원한다.
싱테 깂은 클래스의 메소드로 변경을 하고, 설정은 configuration에서 , 도메인 모델끼리는 message를 통해서 상호작용을 한다고 한다.
zeit(Nextjs 개발)에서 만든 상태 관리 라이브러리
캐시를 이용하여 화면에 보여주어 불필요한 데이터를 호출하지 않아도 되고 빠른 렌더링을 할 수 있다.
효율적인 데이터 전송이나 불필요한 리렌더링을 방지해주는 것 같다.
react-query + recoil을 같이 사용해서 rest api를 처리한다.
Apollo-Client + recoil 을 같이 사용해서 graphQL을 처리한다.
atom 이라는 조각으로 만들어서 참고하는 컴포넌트들만 렌더링 시키는 라이브러리
사용하기 매우 간단하며 리액트 전용으로 사용되는 라이브러리