IT-Q

動的ルートは、どう作りますか。

フォルダ名を角括弧で囲みます。app/blog/[slug]/page.tsx のようにすれば、その配下のURLをこのページが処理します。値は params から await して受け取ります。

面接官が見ているのは基本の補強。

これは「動的ルートで params.slug を読もうとしたら、期待した値が入っていませんでした。何を疑いますか。」への追撃質問です。

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

  • フォルダ名を角括弧で囲み、params から受け取る(現在は await が必要)
    事前生成したい場合は generateStaticParams で対象を列挙します。
  • ファイル名を角括弧で囲む
    App Router ではフォルダ名です。ファイル名で表現するのは Pages Router の流儀で、ここが混ざると調べ物が噛み合わなくなります。
  • next.config でルーティングを定義する
    ファイル構造で表現します。設定ファイルには書きません。
  • 角括弧のフォルダを作り、generateStaticParams で全パターンを必ず列挙する
    全部を列挙する必要はありません。指定しなかったものは最初のアクセス時に生成されます。

面接官は何を見ているか

  • 角括弧のフォルダ名を挙げた
  • params から受け取ると言えた
  • 事前生成の存在に触れられればなお良い

模範解答

フォルダ名を角括弧で囲みます。app/blog/[slug]/page.tsx のようにすると、/blog/なんとか がこのページで処理されます。

値は params から受け取ります。現在は Promise なので await が要ります。

よく使うページをビルド時に作っておきたい場合は、generateStaticParams で対象の値の一覧を返します。全部を事前生成する必要はなく、指定しなかったものは最初のアクセス時に生成されます。