Articles
記事
リフェッチかサブスクリプションか(GraphQL)
GraphQL素人だからChatGPTに聞いてみたメモ
GraphQL素人なので、Mutationした後に、Queryのキャッシュって更新されるのか?
と思って調べてみたら、されないとのこと。
キャッシュ手動更新するのは複雑になりそうなので、他の方法として
- ミューテーション終わりでリフェッチ
- サブスクリプションを使う
のどっちがいいのか分からなかったので、ChatGPTに聞いてみた。
ChatGPT様の回答
![](https://images.microcms-assets.io/assets/9beb625ec94c4bd69beecc4ed2adb3ec/79265842c283489cbaa519f6fab0f3e1/image.png)
結論
- ボタンクリック、ページリロードなどユーザーアクションに基づくデータ更新なら「リフェッチ」←今回
- チャットアプリ、ストックティカーなどサーバー側イベントでリアルタイムデータ更新したいなら「サブスクリプション」
そりゃそうか。
下記のように、useMutationの後ろにリフェッチしたいクエリーを指定するだけでいいのか、ほうほう。
GraphQLいいなぁ…
const [addQuest] = useMutation(ADD_QUEST, {
refetchQueries: [{ query: GET_QUESTS }],
});