Open8
【GraphQLクライアント】FragmentでのSuspense対応
データをGraphQLサーバから取得している際、
スピナーやスケルトンの表示を行いたい。
現在開発しているプロジェクトでは、Fragment Colocationを採用しており、
各コンポーネントでFragmentを定義し、
ページでそれらを束ねたQueryを作成してリクエストしている。
ページ (Query) でサスペンドさせると、
画面全体がローディング状態になってしまい、体験が良くない。
できれば、必要な箇所だけローディング状態にしたい。
FragmentのコンポーネントをSuspenseで囲むことができたら、きれいに実装ができそう。
各クライアントのFragmentにおける、Suspense対応を見ていく。
まずは、今のプロジェクトでも導入しているApollo Client
ロードマップで、今後の対応となっていた
Introduce a suspenseful useFragment that will suspend when the data is not yet loaded
Apollo Clientの対応状況を調べる中で面白いものを見つけた
公演用のプルリクエストに、useSuspenseFragment
なるものが!
どこかで、今後について話すのかな?めっちゃ聞きたい😳
続いて、Relay
ドキュメントを見る感じ、対応していそう
The component will suspend if any data for that specific fragment is missing, and the data is currently being fetched by a parent query.
ちょっと脱線するけど、参考資料
続いて、urql