Logo

Articles

記事

リフェッチかサブスクリプションか(GraphQL)

GraphQL素人だからChatGPTに聞いてみたメモ

GraphQL素人なので、Mutationした後に、Queryのキャッシュって更新されるのか?
と思って調べてみたら、されないとのこと。

キャッシュ手動更新するのは複雑になりそうなので、他の方法として

  • ミューテーション終わりでリフェッチ
  • サブスクリプションを使う

のどっちがいいのか分からなかったので、ChatGPTに聞いてみた。

ChatGPT様の回答

結論

  • ボタンクリック、ページリロードなどユーザーアクションに基づくデータ更新なら「リフェッチ」←今回
  • チャットアプリ、ストックティカーなどサーバー側イベントでリアルタイムデータ更新したいなら「サブスクリプション」

そりゃそうか。

下記のように、useMutationの後ろにリフェッチしたいクエリーを指定するだけでいいのか、ほうほう。
GraphQLいいなぁ…

const [addQuest] = useMutation(ADD_QUEST, {
  refetchQueries: [{ query: GET_QUESTS }],
});