Reactガイドを読んでいくその303
これは
Reactのガイドを読んでいく記事です。
ガイドのリンク
サスペンスを使ったデータ取得(実験的機能)
そもそもサスペンスとは何なのか?
昨日も触れたようにサスペンスはレンダー可能になる前にコンポーネントが何かを待機できるようにすることができる。
const resource = fetchProfileData(); function ProfilePage() { return ( <Suspense fallback={<h1>Loading profile...</h1>}> <ProfileDetails /> <Suspense fallback={<h1>Loading posts...</h1>}> <ProfileTimeline /> </Suspense> </Suspense> ); } function ProfileDetails() { // Try to read user info, although it might not have loaded yet const user = resource.user.read(); return <h1>{user.name}</h1>; } function ProfileTimeline() { // Try to read posts, although they might not have loaded yet const posts = resource.posts.read(); return ( <ul> {posts.map(post => ( <li key={post.id}>{post.text}</li> ))} </ul> ); }
サスペンスは何でないのか
データ取得実装ではない。
すぐに使えるクライアントではない
データ取得をビューレイヤと密結合させない
サスペンスは何ができるのか
データ取得ライブラリがReactと深く連携できる
ロード中状態の表示を細かく設計することができる
競合状態を避ける手助けができる
今日はここまで。