Server Component(RSC)はブラウザではなくサーバー側、具体的にはNode.js環境で実行されるReact Componentです。Node.js APIに直接アクセスでき、そのJavaScript自体はブラウザへ送信されません。レンダリング結果はRSC Payloadという形式でクライアントに渡されます。

記事ではnode:fs/promisesを使ってサーバー側からファイルを読み込む例など、async/awaitによる非同期処理のコードが示されています。一方でServer ComponentはuseStateやuseEffect、イベントハンドラ、ブラウザ用APIを使えず、クライアント側の対話性が必要な部分をClient Componentとして定義するには"use client"ディレクティブが必要になります。

Pages Router時代のgetServerSidePropsはデータ取得がComponentから分離されていましたが、RSCではデータ取得がComponentに統合される点が大きな違いです。記事はSSRとRSCが別概念であることも重ねて強調しています。著者はRSC自体の開発者ではなく、実務でキャッチアップした個人の学習記録として書かれています。

出典が伝えている要点

  • RSC(React Server Components)はクライアントではなくサーバー側の環境で実行されるReact Componentである
  • RSCはブラウザではなくNode.js環境で実行される
  • RSCはNode.js APIへ直接アクセスできる
  • Server ComponentのJavaScriptはブラウザへ送信されない
  • Server Componentのレンダリング結果はRSC Payloadという形式でクライアントに送られる
  • 記事内でnode:fs/promisesを使いサーバー側でファイルを読み込むコード例が示されている
  • Server Componentではasync/awaitを使用した非同期処理が可能である
  • Client Componentを定義するには"use client"ディレクティブを使用する
  • Pages Routerではデータ取得はgetServerSidePropsでComponentから分離されていたが、RSCではComponentにデータ取得が統合される
  • 記事はSSRとRSCが異なる概念であることを強調している
  • Server ComponentではuseState、useEffect、イベントハンドラを使用できない
  • Server Componentはブラウザ用APIにアクセスできない

原文より

Server Componentそのものをブラウザで実行・hydrationする必要がないこと

出典: zenn.dev

← 2026.09.01 の号を通しで読む