SWRは、データフェッチのためのReactフックライブラリです。
「 SWR 」という名前は、HTTP RFC 5861によって普及しているキャッシュ無効化戦略であるstale-while-revalidateから派生しています。SWRは最初にキャッシュ(古い)からデータを返し、リクエスト(revalidate)を送信し、最新のデータに再び付属します。
1つのフックだけで、プロジェクトのデータを取得するデータを大幅に簡素化できます。また、スピード、正確性、安定性のあらゆる面でもカバーして、より良い体験を構築するのに役立ちます。
...そしてもっと。
SWRを使用すると、コンポーネントは常に自動的にデータの更新のストリームを取得します。したがって、UIは常に高速で反応性があります。
swr.vercel.appで完全なドキュメントと例をご覧ください。
import useSWR from 'swr'
function Profile ( ) {
const { data , error , isLoading } = useSWR ( '/api/user' , fetcher )
if ( error ) return < div > failed to load </ div >
if ( isLoading ) return < div > loading... </ div >
return < div > hello { data . name } ! </ div >
}この例では、React Hook useSWR keyとfetcher機能を受け入れます。 keyは、要求の一意の識別子、通常はAPIのURLです。そして、 fetcher keyをそのパラメーターとして受け入れ、データを非同期に返します。
useSWR 、 data 、 isLoading 、 error 3つの値も返します。リクエスト(フェッチャー)がまだ終了していない場合、 data undefinedなり、 isLoadingがtrueます。応答を取得すると、 fetcherの結果に基づいてdataとerrorを設定し、falseにisLoading 、コンポーネントをレンダーにします。
fetcherいずれかの非同期関数である可能性があることに注意してください。お気に入りのデータフェッチングライブラリを使用して、その部分を処理できます。
swr.vercel.appで完全なドキュメントと例をご覧ください。
このライブラリは、next.jsの背後にあるチームによって作成され、コミュニティからの貢献があります。
貢献者
素晴らしいswr NPMパッケージ名を提供してくれたRyan Chenに感謝します!
MITライセンス。