0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

サーバーサイドレンダリングとサーバーコンポーネントの違いとは

Last updated at Posted at 2025-02-03

サーバーサイドレンダリングとサーバーコンポーネント
SSRと似た用語として、Reactには「サーバーコンポーネント」があります。SSRではWebページのHTML自体をサーバー側で生成しますが、サーバーコンポーネントではコンポーネント単位の仮想DOMまでをサーバー側で生成してクライアント側に送り、それを元にクライアント側で描画します。対して、クライアント側で仮想DOMの生成から描画までをすべて行う(今までの)コンポーネントは「クライアントコンポーネント」です。

つまり、コンポーネント単位でクライアントに送って描画する(仮想DOMを送る)のがServerコンポーネント

サーバーコンポーネントというのは、コンポーネント(部品)ごとに「見た目の設計図(仮想DOM)」をサーバー側で作って、その設計図をクライアント(ブラウザ)に送って、クライアント側で実際の画面(HTMLなど)を作る、という仕組みのことです。

具体的には…

  • SSR(サーバーサイドレンダリング)
    サーバーがWebページ全体のHTMLを作って送ります。ブラウザはそれをそのまま表示するので、ページがすぐに見えるという特徴があります。

  • サーバーコンポーネント
    こちらは、ページ全体ではなく、各コンポーネント単位で「仮想DOM」と呼ばれる、コンポーネントの構造や内容を表した設計図(JavaScriptのオブジェクト)をサーバー側で作ります。
    その設計図は、実際のHTMLそのものではなく「どういう部品があって、どんな順番で並ぶか」を表したものです。
    クライアント側では、その設計図を受け取ってから実際に画面を描く(HTMLに変換して表示する)ので、必要な情報だけを効率よく送ることができます。

子供向けの例え

例えば、LEGOブロックでお城を作るときのことを考えてみてね:

  • SSRの場合
    サーバーが完成したお城そのものを作って、その写真をあなたに送るようなものです。あなたはその写真を見て、お城だとわかりますが、後から動かしたり変更したりはできません。

  • サーバーコンポーネントの場合
    サーバーが「お城を作るためのレゴブロックの配置図」を作って、それをあなたに送ります。あなたはその配置図を見ながら、自分で実際にブロックを組み立ててお城を作るので、途中で部品を変えたり、動かしたりすることができるかもしれません。

このように、サーバーコンポーネントでは、サーバー側で各部品の「設計図」を作って送ることで、クライアント側で効率よく画面を作成できる仕組みになっている、ということです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?