RSCとは?React Server Componentsの仕組みを2分で図解【2026年版】

RSCとは?React Server Componentsの仕組みを2分で図解【2026年版】

2025.7.5 2026.6.15

この記事は約2 分で読めます


なぜRSCは新しいのか?

SPAとSSRとの違いから、Partial RenderingとRSC Payloadの仕組みまで。

図解で分かりやすく紹介します。

三好アキ プロフィール写真

筆者三好アキ(専門用語なしでプログラミング)

私について詳しくは → 自己紹介

SSRからRSCへ

SPAについての前々回の記事と、SSRについての前回の記事で、それぞれ「SPA(シングル・ページ・アプリケーション)」および「SSR(サーバー・サイド・レンダリング)」を紹介しました。

そしてSPA、SSR、どちらであっても「クライアントが使うJavaScriptをとにかくすべて送る」という点が同じであることにも触れました。

図で示すと、次のようになっています。

▼ SPA

mpa.png

▼ SSR

mpa.png

ここを改善したものが、本記事で紹介する「RSC(Reactサーバー・コンポーネント)」です。

登場時期
MPA(マルチ・ページ・アプリケーション)SPA以前(2000年ごろ)
SPA(シングル・ページ・アプリケーション)2010年ごろ
SSR(サーバー・サイド・レンダリング)2016年ごろ
RSC(Reactサーバー・コンポーネント)2022年ごろ

RSCの仕組み

RSCにおいても、SSRのように初回リクエスト時に「一部組み立てたHTMLファイル」と「JavaScript」を送るという点は同じです(つまりRSCとSSRは一緒に使うことができます)。

しかし送るJavaScriptの量が違います。

ブラウザで必要な量だけにしぼって送るのです。

図にすると次のようになります。

rsc-1.png

なぜこのようなことが可能かというと、初回リクエストがあったとき、サーバーはRSCのコードを実行し、この段階でJavaScriptを処理しているからです。

ここでクライアントに送るJavaScriptの量が必要最低限になるよう絞っています。

このJavaScript削減を実際に確認したい人は、下記記事に目を通してください▼


ではページ移動時にはどうなのでしょうか。

SPAの記事と、SSRの記事で触れたように、SPAとSSRではサーバーとのやりとりがなく、これがページ移動のスピードが速い理由でした。

実はRSCでは、ページ移動時にはサーバーとのやりとりが発生します。

rsc-2.png

図を見るとリクエストが送られており、SPA以前の仕組み(=MPA)に戻ったようですが、大きな違いがあります。

RSCでは「ページの変更箇所だけを部分的に更新する」ということが可能なのです。

RSCとMPAの違い

MPAでは新しいページを表示するとき、ページは全体がリロードされていました。

サーバーから毎回、新しいページに必要なHTMLとJavaScriptを受け取り、それでページを上書きするように表示していたからです。

たとえばすべてのページで表示されるヘッダーやフッターも、クライアント側で使いまわされるのではなく、毎回サーバーから送られてきていました。

MAPについては下記記事をご覧ください▼


一方、RSCにおけるページ移動時には、「変更箇所だけを部分的に更新する」という方法が使われます(これはPartial Renderingと呼ばれます)。

rsc-3.png

この結果、サーバーから送られてくるものはごく少量で済み、さらにページ全体がリロードされることもなくなります。

サーバーから送られてくるものはHTMLやJavaScriptではなく、最適化・軽量化された「RSC Payload」と呼ばれるものです。

「RSC Payload」のコード例

RSC Payloadとは下記のようなものです。HTMLではなくJSON形式のデータであるのがわかります。

{
    "data": {
        "children": [
            {
                "type": "h1",
                "key": null,
                "props": {
                    "children": "Hello, Server Components!"
                }
            },
            {
                "type": "p",
                "key": null,
                "props": {
                    "children": "This is rendered on the server and streamed to the client."
                }
            }
        ]
    },
    "metadata": {
        "status": "complete"
    }
}

よくある質問

Q1. RSCはNext.jsを使わないと使えませんか?

現時点では、RSCを実用的に使える環境としてNext.jsが最も一般的です。

RSCはReact本体の機能ですが、実際の開発ではNext.jsと組み合わせて使うのが主流です。

Next.jsの全体像と使い方はこちらのガイドにまとめています▼


Q2. データベースを使う場合、RSCのメリットはどう変わりますか?

データベースとの連携があるケースでは、RSCのメリットがより明確になります。

サーバーコンポーネントがデータベースに直接アクセスしてデータを取得し、その結果だけをクライアントに渡せるためです。

詳しくは次に紹介する記事をご覧ください。

RSCをもっと詳しく知りたい人へ

以上、本記事まで4連続でウェブアプリケーションの発展の歴史を見てきました。

MPA、SPA、SSR、そしてRSCという流れです。

しかし実は、ここまでの説明はすべて「データベースを使っていない場合」の解説でした。

説明を簡略化するためです。

データベースとの連携があるケースでは、特にReactサーバー・コンポーネントのメリットがよりわかるようになります。

RSCについて、その原理からメリット、デメリットまで一段深く知りたい人はこちらをどうぞ▼


RSCとReact 19の新機能(useActionState、useOptimistic、useEffectEventなど)を合わせて体系的に理解したい人はこちらのガイドをどうぞ▼


用語は理解できましたが、Reactの学習全体で迷っています

RSCのような個々の概念を追えても、React学習の全体の中で今どこにいるのかは見えにくくなります。

今の状況を教えていただければ、どこを固めれば先に進めるか、次に何を学べばいいかを個別にお答えします。

下のフォームからご連絡ください。

三好アキが直接、目を通してお返事します(無料)。

学習のお悩み相談

プログラミング学習で今つまずいていること、困っていること......あなたの状況に合ったアドバイスを無料でご提供します。

Q1. 現在の状況(ひとつ選択)必須
Q2. いちばん困っていること(ひとつだけ選択)必須
Q3. これまでの学習手段(あてはまるものすべて選択)
Q4. 無料相談を希望しますか?
Q5. 自由記述(任意)

ご相談への返事をお送りするために使用します。こちらから営業メールや勧誘をお送りすることはありません。