React를 위한 전역 상태관리 라이브러리 중 하나이다.
Recoil을 사용하면 atoms (공유 상태)에서 selectors (순수 함수)를 거쳐 React 컴포넌트로 내려가는 data-flow graph를 만들 수 있다.
전역 상태 관리 라이브러리인 Redux에 비해 보일러 플레이트 코드를 많이 작성하지 않아도 되기 때문에 상대적으로 코드의 양이 줄어들게 된다.
직관적이면서 간단한 구조 덕분에 좀 더 쉽게 전역 상태를 관리할 수 있다.
npm install recoil
yarn add recoil
1) RecoilRoot로 하위 컴포넌트를 감싸준다.
import Router from "./shared/Router";
import {RecoilRoot} from "recoil";
function App() {
return (
<RecoilRoot>
<Router />
</RecoilRoot>
);
}
export default App;
2) 전역 상태 관리를 위한 변수 구현
src > recoil > state.js
import {atom} from 'recoil'
export const globalState = atom({
key: 'globalState',
default: 'this is global state',
storage: sessionStorage
})
3) 전역 상태 사용하기
import { useRecoilState } from 'recoil';
const [myState, setMyState] = useRecoilState(globalState);
const myState = useRecoilValue(globalState);
const setMyState = useSetRecoilState(globalState);
const resetState = useResetRecoilState(globalState);