Recoil이란?
리코일은 2020년에 페이스북팀의 한 개발자 엔지니어가 개발한 라이브러리이다. 동시성모드를 해결하기 위해 나온 React에 상태관리 라이브러리다.
리코일의 특징은 다음과 같다.
- 우리는 공유상태(shared state)도 React의 내부상태(local state)처럼 간단한 get/set 인터페이스로 사용할 수 있도록 boilerplate-free API를 제공한다. (필요한 경우 reducers 등으로 캡슐화할 수도 있다)
- 우리는 동시성 모드(Concurrent Mode)를 비롯한 다른 새로운 React의 기능들과의 호환 가능성도 갖는다.
- 상태 정의는 점진적이고(incremental) 분산되어 있기 때문에, 코드 분할이 가능하다.
- 상태를 사용하는 컴포넌트를 수정하지 않고도 상태를 파생된 데이터로 대체할 수 있다.
- 파생된 데이터를 사용하는 컴포넌트를 수정하지 않고도 파생된 데이터는 동기식과 비동기식 간에 이동할 수 있다.
- 우리는 탐색을 일급 개념으로 취급할 수 있고 심지어 링크에서 상태 전환을 인코딩할 수도 있다.
- 전체 애플리케이션 상태를 하위 호환되는 방식으로 유지하기가 쉬우므로, 유지된 상태는 애플리케이션 변경에도 살아남을 수 있다.
redux와의 차이점
리덕스는 전역상태관리 라이브러리로 리코일과 언뜻 같은 기능을 수행하는 것 같지만 리덕스와는 좀 더 코드가 직관적이고 간편하며 아톰을 통해서 상태관리가 이루어지기 때문에 따로 state를 설정해줄 필요가 없다.
