프로젝트를 진행하면서 Next.js 환경에서 API 연동 작업을 진행 하면서 로딩 처리나 에러 핸들링등 필요한 값들을 어떤 방식으로 처리하면 좋을까 찾아 보다 React-QuerySWR 이라는 상태관리 라이브러리를 찾게 되었다.

해당 게시글에서는 두 라이브러리의 차이점과 React-Query를 선택한 이유를 적어 보려고 한다.

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>
);

SWR