React 16.6でSuspenseが導入された。これにより、レンダリングをサスペンドして、API呼び出しからデータなどを待つ間にローディングインジケータを表示することができる。
よくある単純なケースでは、React SuspenseによりReduxは不要になる、ReactエキスパートのRyan Florence氏はこう説明する。
あなたのReduxの主なユースケースが、サーバーサイドデータのクライアントサイドキャッシュとしてなら、SuspenseでReduxを置き換えられるでしょう。よりシンプルなコードと機能で全てのスピナーを制御できるようになると思います。
APIとlocalStorageの両方に対して状態を同期するといった複雑な状態管理の場合、SuspenseよりもReduxのようなアプローチの方が役に立つ。
GFT Polandのソフトウェア開発者のBartosz Szczeciński氏は、SuspenseはReactの利用に大きな影響を与えると予測する。
おそらく、ソリューションを先駆けて開発している多数のライブラリを調べて、ベストプラクティスをうまく調整する必要があるでしょう(render内ですぐにAJAXリクエストを呼び出すのもOKになるでしょう)。でも、そうすることで、私たち全員がユーザーにとってより優れたアプリケーションと体験を生み出せるようになると思いますよ!
React 16.6リリースに含まれているSuspenseのユースケースは、React.lazy()
と<React.Suspense>
によるコンポーネントの遅延ローディングの1つだけだ。コード分割とSuspenseによる最適化に対するReactのアプローチは、React Code Splitting guideに書かれている。
コード分割以外にも、ReactチームはSuspenseへの機能追加を計画しており、データフェッチングの処理やGraphQLライブラリとの統合が含まれている。
Suspenseのサーバーサイドレンダリングのサポートは2019年に予定されている。
ReactはMITライセンスで利用可能なオープンソースソフトウェアだ。React GitHubプロジェクト経由でのコントリビューションとフィードバックは大歓迎だ。ただし、React contribution guidelinesとFacebook open source code of conductに従う必要がある。
Rate this Article
- Editor Review
- Chief Editor Action