Recoil는 React를 위한 상태 관리 라이브러리다.
리덕스에 대한 불만이 많아지면서 리덕스보다 쉬운 리코일이 나오게되었다.
hook처럼 리액트의 상태를 간단하게 변경하고 이용 가능하는 장점이 있다.
Atoms는 상태의 단위이다. update와 subscribe도 가능하다. atom이 update되면 각각의 subscribe component는 다시 리렌더링한다.
동일한 atom이 여러 컴포넌트에서 사용되면 해당 상태를 공유한다.
atom은 디버깅과 지속성을 위해, 그리고 모든 atoms의 map을 볼 수 있는 특정 고급 API에 사용되는 key가 필요하고 이 값은 고유해야 한다.
component에서 atom을 읽고 쓰려면 useRecoilState라는 hook을 사용한다. react의 useState와 흡사하지만, 컴포넌트간에 공유가 될 수 있다는 차이가 있다. 그러므로 쉽다는 것이다.
useRecoilValue : 값을 가져오기만
useSetRecoilState : 값을 업데이트만
useRecoilState : 가져오기,업데이트 (hook의 setState)