[React] Suspense(React 18 の新機能) を Axios と合わせてみる | 心を無にして始める React

Suspense
https://ja.reactjs.org/blog/2022/03/29/react-v18.html#new-suspense-features
サスペンスにより、コンポーネントツリーの一部がまだ表示できない場合に、ロード中という状態を宣言的に記述できるようになります。
いままで state で isLoading を準備して書いていたのを、楽にできる便利さん (。-`ω-)
準備
Axios をインストールして、json-server も立ち上げておきます。
これからのロード中
Suspense を使っていくので、コンポーネントがロード中になるときは Promise を throw するようにします。
コンポーネントが Promise を throw するっていう違和感はちょっとありますが、たぶん住めば都 (/・ω・)/
イメージ
画像は割愛 (。´・ω・)
一瞬だけ Spinner が出て、通信が終わったら Table がでます。
局所的なサンプル
使ってみる
では、いつものように App.js を編集していきます。
はい、できました。
ここにコードがないコンポーネントは、過去の記事にあります ('◇’)ゞ
Spinner は間違えて react bootstrap のをそのまま使っていますが、ご愛嬌ということで… (/ω\)