글로벌 스테이트를 위한 라이브러리들!

kimdev·2022년 6월 11일
0

글로벌 스테이트란?

나는 여태껏 컴포넌트가 깊어지는 말든 프롭스드릴링을 이용해 데이터를 넘겨주고 있엇다.

하지만 글로벌스테이트를 배운 순간부터(익숙해진 순간부터)는 더이상 프롭스때문에
고통받지 않아도 된다!!(나는 아직 고통받고있다.)

글로벌스테이트란 이름그대로 스테이트를 모든파일에 적용시켜줄 수 있다는 것이다.

전역변수를 한 파일내부에서 하는게 아니라 한 프로젝트 전체에 적용 시킬 수 있는것이다.

컴포넌트를 사용하는 리액트에 필수적이라고 할 수 있는 기능이다.

라이브러리가 필요한가요??

리액트에서 기본적으로 제공하는 context라는 기능이 있다.

하지만 이 context는 치명적인 단점이있는데 전역적으로 스테이트를 사용하면 전역스테이트를
사용하고있는 모든 컴포넌트가 리렌더링이 된다

때문에 대부분의 리액트 개발자는 라이브러리를 통해 전역변수를 사용하는데

이 라이브러리들이 우리가 많이 들어왔던 Redux,MobX,Recoil과 같은것들이다.

엄청 복잡하다던데?

솔직히 리덕스나 모브엑스는 설치도 안해봐서 모르겠지만 꽤나 복잡하다고 한다.

때문에 나는 비교적 간편한 리코일을 이용하였다. 거대한 프로젝트가 아니면서 단순히

글로벌 스테이트만 사용하려고 한다면 리코일이 제일 나은 선택이라고 한다.

리코일은 어떻게 쓰는데??

리코일은 Context와 사용법이 같다고 할 정도로 비슷하다.

최상단 컴포넌트에 RecoilRoot로 감싸주고 useRocoilState를 이용해 스테이트처럼 사용하면
된다.

0개의 댓글