반응형
Recoil이란?
Recoil은 Facebook에서 만든 React 전용 상태 관리 라이브러리입니다.
- Context보다 강력하고,
- Redux보다 간편하며,
- React스럽게 설계되어 있습니다.
설치하기
npm install recoil
Atom: 상태를 저장하는 가장 기본 단위
// store/countState.js
import { atom } from 'recoil';
export const countState = atom({
key: 'countState',
default: 0,
});
- key: 전역적으로 고유한 값
- default: 초기값
useRecoilState: 상태를 읽고 수정하기
import { useRecoilState } from 'recoil';
import { countState } from './store/countState';
function Counter() {
const [count, setCount] = useRecoilState(countState);
return (
<>
<button onClick={() => setCount(count - 1)}>-</button>
<span>{count}</span>
<button onClick={() => setCount(count + 1)}>+</button>
</>
);
}
마치 useState처럼 쓰면 됩니다.
RecoilRoot로 감싸기
import { RecoilRoot } from 'recoil';
import Counter from './Counter';
function App() {
return (
<RecoilRoot>
<Counter />
</RecoilRoot>
);
}
Selector: 파생된 상태 만들기
// store/doubleCount.js
import { selector } from 'recoil';
import { countState } from './countState';
export const doubleCount = selector({
key: 'doubleCount',
get: ({ get }) => get(countState) * 2,
});
import { useRecoilValue } from 'recoil';
import { doubleCount } from './store/doubleCount';
function Result() {
const doubled = useRecoilValue(doubleCount);
return <div>2배 수치: {doubled}</div>;
}
Recoil은 배우기 쉽고 구조화하기도 좋으며 React스럽게 상태 관리를 도와줍니다.
작은 프로젝트부터 대형 앱까지 무난하게 도입할 수 있는 장점이 있습니다.
반응형
'React' 카테고리의 다른 글
Jotai 상태 관리 완전 정복 (0) | 2025.05.24 |
---|---|
Zustand로 상태 관리하기 (1) | 2025.05.24 |
React에서 이미지 업로드 전 미리보기 구현하기 (0) | 2025.05.19 |
[Error] npm ERR! enoent ENOENT: no such file or directory, lstat 에러 해결 (0) | 2023.09.08 |
[Error] npm notice Beginning October 4, 2021, all connections to the npm registry - including for package installation - must use TLS 1.2 or higher (0) | 2023.07.14 |