IT-Q

app ディレクトリの中にコンポーネントやテスト用のファイルを置いても、URL として公開されてしまいませんか。

公開されません。フォルダを作っただけではルートになりません。公式も、そのセグメントに page か route が置かれるまでルートは公開されないと説明しています。

面接官が見ているのはルーティングの条件を正しく理解しているか。

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

  • 公開されない。page か route が無ければルートにならない
    だからコロケーション(関係ファイルを近くに置くこと)が安全に行えます。
  • 公開される。app の中は全部ルートになる
    なりません。フォルダはルート構造を定義するだけで、page か route が置かれるまでそのパスは公開されません。
  • 公開されないが、心配なら app の外に置く方がよい
    app の外に置く構成も公式が認めています。好みの問題です。ただし「公開されるかもしれないから外に置く」という理由づけは正しくありません。
  • 拡張子が .tsx なら公開される
    拡張子ではなくファイル名です。page / route という決まった名前が条件になります。

面接官は何を見ているか

  • page か route が無ければ公開されないと答えた
  • フォルダを作っただけではルートにならないと理解している
  • コロケーションが安全だと言えた

模範解答

公開されません。フォルダを作っただけではルートになりません。

公式の説明では、ルート構造はフォルダで定義されますが、そのセグメントに page.js か route.js が置かれるまで、そのルートは公開されません。さらに、公開された場合でも外に出るのは page や route が返した内容だけです。

なので、コンポーネントやテスト、ユーティリティを対応するルートのフォルダに置く(コロケーション)のは安全です。関係するファイルが近くにまとまるので、むしろ読みやすくなります。

明示的に「ここはルートではない」と示したい場合は、フォルダ名の先頭にアンダースコアを付けるプライベートフォルダにできます。

ここからどう深掘りされるか

この問いに答えられた場合、面談は次の質問に進みます。