カテゴリ: Next.js 更新日: 2026/02/01

Next.jsのTemplateとは?ページごとの状態をリセットする理由を初心者向けに解説

Next.jsのTemplateでページごとの状態をリセットする理由
Next.jsのTemplateでページごとの状態をリセットする理由

先生と生徒の会話形式で理解しよう

生徒

「Next.jsのLayoutとTemplateって、何が違うんですか?」

先生

「見た目は似ていますが、ページの動き方が大きく違います。」

生徒

「Templateだと、ページごとの状態がリセットされるって聞きました…」

先生

「そこがとても大事なポイントです。パソコンを使ったことがなくても分かるように説明しますね。」

1. Next.jsとは?はじめての人向け超かんたん説明

1. Next.jsとは?はじめての人向け超かんたん説明
1. Next.jsとは?はじめての人向け超かんたん説明

Next.js(ネクストジェイエス)は、WebサイトやWebアプリを作るための道具です。 Webサイトとは、インターネットで見るページのことです。たとえば、ブログ、会社のホームページ、ネットショップなどです。

Next.jsは、JavaScript(ジャバスクリプト)というプログラミング言語を使って作られています。 プログラミング未経験の人でも、決まった書き方を覚えれば、少しずつ理解できるようになります。

特にNext.jsは、「ページの切り替えが速い」「画面の部品を使い回せる」などの特徴があり、最近とても人気があります。

2. LayoutとTemplateの違いを日常生活で例えると?

2. LayoutとTemplateの違いを日常生活で例えると?
2. LayoutとTemplateの違いを日常生活で例えると?

Layout(レイアウト)とTemplate(テンプレート)は、どちらもページの共通部分を作る仕組みです。 しかし、動き方が違います。

Layoutは「家の骨組み」のようなものです。部屋を移動しても、柱や天井はそのまま残ります。 そのため、Layoutの中の状態(後で説明するデータ)は、ページを移動しても保たれます。

一方でTemplateは「毎回新品の部屋」を用意するイメージです。 別のページに移動すると、部屋が作り直されるため、中に置いてあったものはリセットされます。

3. 「状態(state)」とは何かを超やさしく解説

3. 「状態(state)」とは何かを超やさしく解説
3. 「状態(state)」とは何かを超やさしく解説

状態(state)とは、「今どうなっているか」という情報です。 難しく聞こえますが、とても身近なものです。

たとえば、電気のスイッチが「オン」か「オフ」か。 ゲームの体力が「100」なのか「50」なのか。 これらはすべて状態です。

Next.jsでは、ボタンを押した回数や、入力された文字などを状態として覚えておくことができます。


"use client";
import { useState } from "react";

export default function Counter() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>クリック回数:{count}</p>
      <button onClick={() => setCount(count + 1)}>
        ボタン
      </button>
    </div>
  );
}
(画面に「クリック回数:0」と表示され、ボタンを押すたびに数字が増えていきます)

4. Templateでページごとの状態をリセットする理由

4. Templateでページごとの状態をリセットする理由
4. Templateでページごとの状態をリセットする理由

Templateを使う最大の理由は、「ページを切り替えたときに、状態を最初からやり直したい」からです。

たとえば、入力フォームのページを考えてみてください。 別のページに移動して戻ってきたとき、前に入力した文字が残っていたら困ることがあります。

Templateを使うと、ページを移動するたびにコンポーネント(画面の部品)が作り直されます。 その結果、状態も最初の状態に戻ります。

5. Templateの基本的な書き方(Next.js App Router)

5. Templateの基本的な書き方(Next.js App Router)
5. Templateの基本的な書き方(Next.js App Router)

Next.jsでは、appフォルダの中にtemplate.tsxやtemplate.jsxを作ることでTemplateを使えます。 ファイル名が決まっているので、名前を間違えないことが大切です。


export default function Template({ children }: { children: React.ReactNode }) {
  return (
    <div>
      {children}
    </div>
  );
}

children(チルドレン)とは、「この中に表示されるページの中身」という意味です。 難しい言葉ですが、「入れ物」だと思ってください。

6. Layoutだと状態が残る例を見てみよう

6. Layoutだと状態が残る例を見てみよう
6. Layoutだと状態が残る例を見てみよう

次はLayoutを使った例です。ページを移動しても、数字がそのまま残ります。


"use client";
import { useState } from "react";

export default function Layout({ children }) {
  const [number, setNumber] = useState(0);

  return (
    <div>
      <button onClick={() => setNumber(number + 1)}>
        数字:{number}
      </button>
      {children}
    </div>
  );
}
(ページを切り替えても、数字がリセットされずに残ります)

7. Templateだと状態がリセットされる例

7. Templateだと状態がリセットされる例
7. Templateだと状態がリセットされる例

同じようなコードでも、Templateにすると動きが変わります。


"use client";
import { useState } from "react";

export default function Template({ children }) {
  const [text, setText] = useState("");

  return (
    <div>
      <input
        value={text}
        onChange={(e) => setText(e.target.value)}
      />
      <p>{text}</p>
      {children}
    </div>
  );
}
(別のページに移動すると、入力した文字が消えて最初の状態に戻ります)

8. Templateを使うと安心できる場面とは?

8. Templateを使うと安心できる場面とは?
8. Templateを使うと安心できる場面とは?

Templateは、ログイン画面、入力フォーム、アンケート画面などで特に役立ちます。

これらの画面では、「前の情報が残らないこと」が正しい動きの場合が多いです。 間違った状態が残ると、ユーザーが混乱してしまいます。

Next.jsのTemplateを使うことで、ページごとに安全で分かりやすい動きを実現できます。 初心者のうちから、この考え方を知っておくと、とても役に立ちます。

カテゴリの一覧へ
新着記事
New1
React
ReactでonChangeイベントを使ってフォーム入力値を管理する方法を初心者向けに解説
New2
React
ReactのPropsの使い方を完全ガイド!初心者でもわかる関数を渡して子から親にイベント通知する方法
New3
React
Reactのコンポーネント志向とは?再利用性の高いUI設計を学ぶ
New4
Next.js
Next.jsのLayoutをルート単位で切り替える方法を完全解説!初心者でもわかるNext.jsレイアウト入門
人気記事
No.1
Java&Spring記事人気No1
React
ReactでonChangeイベントを使ってフォーム入力値を管理する方法を初心者向けに解説
No.2
Java&Spring記事人気No2
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!
No.3
Java&Spring記事人気No3
React
ReactのuseEffect依存配列を徹底解説!初心者でも理解できるDependency Arrayの仕組み
No.4
Java&Spring記事人気No4
Next.js
Next.jsのApp RouterとPages Routerの役割の違いを完全解説!初心者でもわかるNext.jsの基本概念
No.5
Java&Spring記事人気No5
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.6
Java&Spring記事人気No6
Next.js
Next.jsのApp RouterとServer Componentsの関係まとめ!初心者でもわかるNext.jsの新しい仕組み
No.7
Java&Spring記事人気No7
React
React開発におすすめのVSCode拡張機能まとめ!初心者でもすぐ使える便利ツール紹介
No.8
Java&Spring記事人気No8
React
ReactのuseEffectで初回のみ処理を実行する方法を徹底解説!初心者でもわかるReactフック入門