IT-Q

App Router で、layout と page は既定でどちら側のコンポーネントですか。

Server Component です。App Router では layout と page が既定でこれになり、宣言は要りません。宣言が必要なのは、既定から外れてクライアント側にするときだけです。

面接官が見ているのは「既定は Server Component」を知らないと、設計の出発点を間違える。

よくある答えと、面談でどう見られるか

  • Server Component。宣言は不要で、それが既定
    既定から外れるときだけ宣言が要ります。
  • Client Component。ブラウザで動くのが基本だから
    逆です。既定はサーバー側で、必要なときにクライアントへ寄せます。
  • どちらでもなく、ビルド時に自動で判定される
    自動判定ではありません。既定が Server で、宣言で切り替えます。
  • Server Component だが、'use server' と書く必要がある
    既定なので宣言は不要です。'use server' は別の役割(後述)を持ちます。

模範解答

Server Component です。App Router では layout と page が既定でこれになります。宣言は要りません。宣言が必要なのは、既定から外れるときだけです。

Server Component はサーバー側だけで実行され、そのコンポーネントのJSはブラウザに送られません。DBやAPIキーに直接触れますし、送るJSが減ります。代わりに useState のような状態も onClick のようなイベントハンドラも使えません。