- 著者が50,000行のコードをReact Server Components(RSCs)へ移行する中で経験し、学んだ教訓についての記事
- RSCsはクライアントではなくサーバーで実行されるReactコンポーネントで、サーバーサイドレンダリング(SSR)に対して2つの主要な利点を提供
- 第一に、RSCsは開発者がコードの実行場所を定義できるようにし、バンドルサイズを縮小し、hydration中の作業を減らす
- 第二に、サーバーコンポーネントはコンポーネント内で直接データを取得し、それをクライアントへストリーミングできるため、Reactにおけるデータ取得をより簡単かつ効率的にする
- しかし、RSCsの利用にはいくつかの制約がある。CSS-in-JSはサーバーコンポーネントでは動作せず、React Contextにはクライアントコンポーネントからしかアクセスできず、コードが実行される場所を管理する複雑さが課題になりうる
- 著者は、RSCsを段階的に採用するための3段階のアプローチを提案
- アプリのルートに
"use client"ディレクティブを追加する
- レンダリングツリー内で、可能な限り低い位置へそのディレクティブを移動する
- パフォーマンス上の問題が発生したときに高度なパターンを採用する
- この追加の複雑さにもかかわらず、著者は、より小さなバンドルサイズ、より高速な実行、高度なデータローディングパターンといったRSCsの利点は、チームにとって性能面のメリットが重要である場合、そのコストを上回りうると結論づけている
1件のコメント
Hacker Newsの意見
appディレクトリ構成に関する個人的な経験を共有し、処理がどこで行われているのか(サーバーまたはクライアント)を理解する難しさや、クライアント側での動作を前提とする既存のReactライブラリとの問題点を強調しました。