楽しく学ぼう!!エンジニャリング!アルファ版!
typescript
javascript

SWRを安全に使う!

このコーナーではSWRを安全に使っていくよ

待って、SWRってそもそも何?

Vercelが出しているNext.js用のAPIルートを使用したデータフェッチのためのクライアントフェッチライブラリだよ

へーそうなんだ

実はこのサイトも管理画面で使ってるよ

えーすごい!!

データフェッチのライブラリなの、静的生成の弱点を完全にカバーする上にリアルタイム更新が可能だからSSRやHTMLサイトなんかより圧倒的に強いんだ。
これから先の時代SSGで生成してSWRでフェッチするのがデファクトスタンダードになるよ

じゃあちょと見ていこうかしら、簡単にわかるようにお願いね

これが実際に動いているソースコードだけど、SWRConfigの設定でイミュータブルがあるの、それを環境変数で出し分けてるよ
ライン35番から30番までがそのイミュータブルの設定しているコードよ。
useSWRImmutableのフックもあるけどこうやってappから全体に設定する方が楽だからこうしてるわ




イミュータブルにするってことは普通にリアルタイムで更新されないけど、どうやって更新してるの?

開発環境ではリアルタイム更新、本番のネットにある環境ではミューテーションをログインで仕込んだりするのがオススメだ。
SWRの動的リアルタイムフェッチは本番環境ではよくない、何故なら、編集したデータに誤りがあったらユーザーが不信に思う可能性があるからだ。
だから開発環境でのみ使いたいから本番と開発で出し分けるんだ。

確かに編集中の記事が間違えて見える状態になっちゃうと見た人が不信に思ったりする可能性もあるものね、よくできているのね。