Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

new_bird-hyun

React에서 데이터 페칭 최적화 - Suspense와 React Query 본문

코딩 공부

React에서 데이터 페칭 최적화 - Suspense와 React Query

새혀니 2024. 12. 17. 09:10

npm install @tanstack/react-query

 

import React from 'react';
import { QueryClient, QueryClientProvider, useQuery } from '@tanstack/react-query';

const queryClient = new QueryClient();

function fetchData() {
  return new Promise((resolve) =>
    setTimeout(() => resolve(['React', 'Next.js', 'TypeScript']), 2000)
  );
}

function DataList() {
  const { data, isLoading, error } = useQuery(['data'], fetchData);

  if (isLoading) return <p>Loading...</p>;
  if (error) return <p>Error: {error.message}</p>;

  return (
    <ul>
      {data.map((item, index) => (
        <li key={index}>{item}</li>
      ))}
    </ul>
  );
}

export default function App() {
  return (
    <QueryClientProvider client={queryClient}>
      <React.Suspense fallback={<p>Loading Suspense...</p>}>
        <DataList />
      </React.Suspense>
    </QueryClientProvider>
  );
}

 

React Suspense와 React Query를 결합하면 데이터 페칭이 더 직관적으로 관리됨