React 애플리케이션을 위한 상태 관리 라이브러리
ex) 로그인 상태 , 사용자 정보 , 테마 설정 등
❌ useState 사용 : 여러 컴포넌트에서 상태 공유 어려움
: *prop drilling 이 발생할 수 있음
*prop drilling
: React에서 부모 컴포넌트의 데이터를 자식 컴포넌트로 전달할 때 중간 컴포넌트들이 불필요하게 prop을 전달해야 하는 문제
ex) 필터 옵션 , 검색어, 사이드바 상태
✅ 페이지 내 여러 섹션에서 동일한 데이터를 참조해야 한다면 Recoil을 활용
ex) 페이지 이동 시 유지되어야 하는 데이터 (장바구니 , 선택한 옵션 등)
❌ useState 사용 : 상태가 사라짐
❌ localStorage나 sessionStorage 사용 : 비효율적
✅ Recoil 사용 : 전역 상태로 관리 가능
: recoil의 selector 활용
ex) 사용자 정보 , 상품 리스트 , 차트 데이터 등
✅ recoil의 selector을 활용하면 API 요청을 상태로 저장하여 불필요한 재요청 줄일 수 있음
const userInfoQuery = selector({
key: 'userInfoQuery',
get: async () => {
const response = await fetch('/api/user');
return response.json();
},
});
function UserProfile() {
const userInfo = useRecoilValue(userInfoQuery);
return <div>{userInfo.name}</div>;
}
1) 단순한 로컬 상태 관리
: useState나 useReducer 사용
2) 부모-자식 간 데이터만 전달
: props 사용
3) React Query 같은 라이브러리를 사용하는 경우
: API 캐싱의 경우 이것이 더 정확함
[floating Label] 움직이는 placeholder 만들기 (0) | 2025.03.05 |
---|---|
[Recoil]상태 관리 라이브러리 도전기 (0) | 2025.02.19 |
[React-Query] React-Query가 뭔데요? (0) | 2025.02.18 |