프로젝트를 진행하면서 Next.js 환경에서 API 연동 작업을 진행 하면서 로딩 처리나 에러 핸들링등 필요한 값들을 어떤 방식으로 처리하면 좋을까 찾아 보다 React-Query
와 SWR
이라는 상태관리 라이브러리를 찾게 되었다.
해당 게시글에서는 두 라이브러리의 차이점과 React-Query
를 선택한 이유를 적어 보려고 한다.
import { useQuery, useMutation, QueryClient, QueryClientProvider } from 'react-query';
const queryClient = new QueryClient();
const fetchData = async () => {
const response = await fetch('/api/data');
return response.json();
};
const MyComponent = () => {
const { data, error, isLoading } = useQuery('fetchData', fetchData);
if (isLoading) return 'Loading...';
if (error) return 'An error occurred';
return <div>{data}</div>;
};
const App = () => (
<QueryClientProvider client={queryClient}>
<MyComponent />
</QueryClientProvider>
);