資料取得

TanStack Query / SWR

推薦

TanStack Query

使用的人多,能做的事也多。不只是顯示資料,連儲存、刪除都能用同樣的思路來寫

比較效果

用每個函式庫做了同樣的東西,動手試試看。

TanStack Query
SWR

比較程式碼

修改程式碼,右邊的預覽會跟著變化。

import {
  QueryClient,
  QueryClientProvider,
  useQuery,
} from "@tanstack/react-query"
import { fetchEmployees } from "./api"
import { EmployeeListView, ErrorView, LoadingView } from "./view"

// 快取已取得資料的容器(整個應用程式一個)
const queryClient = new QueryClient()

function EmployeeList() {
  const { data, isPending, error } = useQuery({
    queryKey: ["employees"],
    queryFn: fetchEmployees,
  })

  if (isPending) return <LoadingView />
  if (error) return <ErrorView message={error.message} />

  return <EmployeeListView employees={data} />
}

export default function App() {
  return (
    // 用 QueryClientProvider 包住整個應用程式,裡面就能使用 useQuery
    <QueryClientProvider client={queryClient}>
      <EmployeeList />
    </QueryClientProvider>
  )
}

比較

截至 2026 年 10 月

TanStack Query

推薦官方網站 ↗

特色

取得資料、暫存資料、資料過期後重新取得,一次幫你處理好。儲存、刪除(修改資料的操作)的功能也很完整

適用情境

推薦。管理後台等需要大量顯示和更新資料的應用程式

特色

由開發 Next.js 的 Vercel 推出的函式庫。一行 useSWR 就能取得資料。小巧又簡單

適用情境

用 Next.js 開發。只需要顯示資料的簡單畫面