0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TanStack Query v5 入門

Posted at

はじめに

この記事では、TanStack Query v5 の基本的な利用方法について記載します。

TanStack Query は、以前は React Query と呼ばれていましたが、v4 以降は TanStack Query という名称が正式のようです。1

開発環境

開発環境は以下の通りです。

  • Windows11
  • VSCode
  • TypeScript 5.2.2
  • React 18.2.0
  • TabStack Query 5.20.2

パッケージのインストール

以下のコマンドで TanStack Query をインストールします。

npm i @tanstack/react-query

また、以下のコマンドで ESLint Plugin Query をインストールすることができます。

npm i -D @tanstack/eslint-plugin-query

プラグインのインストール後、.eslintrc.json に以下の値を追加することで、推奨設定を適用できます。

.eslintrc.json
{
  "extends": ["plugin:@tanstack/eslint-plugin-query/recommended"]
}

実装

まず、TanStack Query を利用するコンポーネントを QueryClientProvider で囲みます。
QueryClientProvider の props には、QueryClient を渡します。

index.tsx
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import CoreConcepts from "./core-concepts/page";
import { Route } from "@/app/type";

const queryClient = new QueryClient();

export default function TanStackQuery() {
  return (
    <QueryClientProvider client={queryClient}>
      <CoreConcepts />
    </QueryClientProvider>
  );
}

次に QueryClientProvider で囲んだ子コンポーネントでデータ取得処理を実装します。
データ取得処理には useQuery を利用します。引数の queryFn にリクエスト処理を渡します。戻り値で取得したデータやデータの取得状況などを得ることができます。

CoreConcepts.tsx
import { useQuery } from "@tanstack/react-query";

export default function CoreConcepts() {
  const { isPending, error, data } = useQuery({
    queryKey: [],
    queryFn: () =>
      fetch("https://official-joke-api.appspot.com/random_joke").then((res) =>
        res.json()
      ),
  });

  console.log(
    "status:",
    status,
    "\nisPending:",
    isPending,
    "\nerror:",
    error,
    "\ndata:",
    data
  );

  if (isPending) return "Processing...";

  if (error) return `An error has occurred: ${error.message}`;

  return (
    <ul>
      <li>- Type: {data.type}</li>
      <li>- Setup: {data.setup}</li>
      <li>- Punchline: {data.punchline}</li>
    </ul>
  );
}

動作確認

ひと通り実装できたので、動作確認をしてみます。

localhost_3000_tanstack-query-Google-Chrome-2024-02-28-10-49-26.gif

まとめ

データ取得処理だけであれば、簡単に実装できました。
他にも機能がたくさんあったので、実際に実装したり、使いどころを考えていきたいです。

参考

  1. https://tanstack.com/query/v4/docs/framework/react/guides/migrating-to-react-query-4

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?