株式会社オートプロジェクト

Next.js初心者向け|App Routerとは?基本的な使い方をわかりやすく解説

Next.js初心者向け|App Routerとは?基本的な使い方をわかりやすく解説

Next.jsには、WebサイトのページやURLを管理するための仕組みとして「Router」があります。

Routerには、従来から使われている「Pages Router」と、Next.js 13で導入された「App Router」の2種類があります。

現在のNext.jsでは、App Routerを使った開発が主流となっています。

今回は、「App Router」について、ご紹介します。

App Routerとは

App Routerは、Next.jsでページやレイアウトを管理するための仕組みです。

appフォルダの中にページやレイアウトなどのファイルを配置して、Webサイトを構築していきます。

基本的なファイル構成は、下記のようになります。

app/
 ├── page.tsx
 ├── layout.tsx
 ├── about/
 │     └── page.tsx
 └── contact/
       └── page.tsx

ファイルごとにそれぞれ役割が決まっています。

ファイル役割
page.tsxページ
layout.tsx共通レイアウト
loading.tsxローディング表示
error.tsxエラー表示
not-found.tsx404ページ

page.tsxとは

page.tsxは、そのURLで表示するページを定義するファイルです。

構成例

app/
 ├── page.tsx
 ├── about/
 │     └── page.tsx
 └── contact/
      └── page.tsx

app/page.tsx … トップページ
app/about/page.tsx … aboutページ
app/contact/page.tsx … contactページ

appフォルダ内のディレクトリ構成がURLのパスに対応し、page.tsxを配置することで、そのURLのページとして表示されます。

layout.tsxとは

複数のページで共通して使うレイアウトを定義するファイルです。

page.tsxの内容をchildrenとして受け取り、共通して表示したい要素を配置できます。

page.tsxがページごとのコンテンツを定義するのに対して、layout.tsxではページ全体の構造を定義できます。

// layout.tsx
export default function RootLayout({
 children,
}: { 
 children: React.ReactNode; 
}) {
 return (
  <html lang="ja">
   <body>
    { children }
   </body>
  </html>
 );
}

RootLayoutの引数のchildrenは、page.tsxの中身が渡ってきます。

フォルダごとに設定できる

App Routerでは、フォルダごとにlayout.tsxなどのファイルを配置できます。

配置したファイルは、そのフォルダ以下のページに適用されるため、一部のページだけレイアウトを変更することも可能です。

例えば、管理画面だけ専用のレイアウトにしたい場合は、以下のような構成にできます。

app/ 
 ├── layout.tsx
 ├── page.tsx 
 └── admin/
      ├── layout.tsx
      ├── page.tsx
      └── users/
           └── page.tsx

app/layout.tsx … サイト全体に適用されるレイアウト
app/admin/layout.tsx … 「/admin」「/admin/users」のページに適用されるレイアウト

このように、フォルダごとにレイアウトを設定できるのもApp Routerの特徴です。

まとめ

App Routerは、Next.jsでページやレイアウトを管理するための仕組みです。

フォルダやファイルに役割が決まっているため、構成が分かりやすく、ページを管理しやすいのが特徴です。

まずは、appフォルダを中心にページを作っていくという基本を覚えておきましょう。

Webデザイナー / コーダーのみなさまへ

株式会社オートプロジェクトでは、バックエンド全般を安心してお任せいただけます。

サーバー設定やDB管理、セキュリティ対策など幅広いニーズに対応いたします。お気軽にご相談ください。

バックエンドについて、オートプロジェクトに問い合わせをする

Contact ご相談・お問い合わせ

実現の可否や概算費用、納期に関するご質問・ご相談も、
どうぞご遠慮なくお問い合わせください。

TOP