ISBN 9784297140618

実践Next.js -- App Routerで進化するWebアプリ開発

実践Next.js -- App Routerで進化するWebアプリ開発
著者
吉井 健文
出版社
技術評論社
刊行
2024-03

概要

App Routerを軸にNext.jsの実践的な実装パターンを習得する

想定読者

ReactとTypeScriptの基礎を習得済みで、App Routerへの移行または新規導入を検討しているフロントエンド〜フルスタックエンジニア

こんな人には向いていない

  • Next.js・Reactをまだ触れたことがない完全な初学者(JSX・useStateの前提知識が必要であり、入門書として設計されていない)
  • Pages Routerを使い続ける予定で、App Routerへの移行を当面検討していないチーム(本書の大半がApp Router前提の解説のため費用対効果が低い)
  • バックエンドAPIサーバーの設計・運用を主目的とするエンジニア(本書はNext.jsのフルスタック機能から実装に踏み込むが、サーバー単体設計の深掘りは対象外)

この本で身につくこと

  • Server ComponentとClient Componentの使い分けを設計レベルで判断できる
  • App Routerが持つ4種類のキャッシュ(Data Cache / Full Route Cache / Router Cache / Request Memoization)を目的に応じて制御できる
  • Parallel RoutesとIntercepting Routesを使ったURLを壊さないモーダル遷移を実装できる
  • Server Actionによるデータ更新・楽観的UI更新・フォームバリデーションを一気通貫で実装できる
  • NextAuth.jsを用いたOAuth認証フローをNext.jsアプリに組み込める
  • SSGルートの実装とパフォーマンスの定量評価手法を身につける

ハイライト(外部からの言及)

最新のNext.jsを現場で使うために実践的な知識を詰め込んだ一冊です。フレームワークの基礎はもちろん、パフォーマンスを上げるための知識や関連ライブラリまで、詳細なサンプルコードをもとに解説していきます。 — 出典

本書のスコープを端的に示す冒頭文。基礎からパフォーマンスチューニングまでを一冊でカバーする意図が明確に示されている

章立て

第1章 Next.jsの基礎

App Router 時代の Next.js の特徴を整理する導入章

第2章 Server Componentとレンダリング

Next.js 13 以降の中核概念。RSC / Server Actions の実装パターン

第3章 App Routerの規約

Pages Router からの移行で詰まりやすい部分。layout / page / loading / error の対応関係

第4章 Route Handler

API ルート(かつての pages/api)が App Router でどう扱われるか

第5章 サンプルアプリの概要

第 6 章以降のハンズオンを追うための前提章。ローカル環境セットアップを済ませてから進むことが前提で、この章を飛ばすと後続のコード文脈が追えなくなる

第6章 データ取得とキャッシュ

fetch の Next.js 拡張(revalidate / tags)。本書の核心

第7章 認証機能

NextAuth.js(Auth.js)による OAuth 認証の実装例。セキュリティ設計より実装パターン寄りで、JWT / セッション管理の深掘りは別途補完が必要

第8章 モーダル表示とデータ連携

Parallel Routes / Intercepting Routes の応用

第9章 データ更新とUI

Server Actions / useOptimistic による楽観的 UI

第10章 パフォーマンスとキャッシュ

第 6 章のデータキャッシュを本番ユースケース視点で再整理する章。SSG / ISR の選択基準を定量的に扱い、本書全体のキャッシュ設計が繋がる位置づけ

付録A Prisma

本書サンプルアプリが依存する ORM の最小セットアップを記載。スキーマ定義と基本 CRUD を示すが、マイグレーション戦略や N+1 対策は公式ドキュメントへの誘導に留まる

学習のヒント

  • 第2章(Server Componentとレンダリング)は本書全体の前提概念なので、Server/Client Componentの境界が曖昧なまま先に進まず、図を描いて整理してから第3章へ移ると回収が早い
  • 第10章(パフォーマンスとキャッシュ)は第6章の続きとして位置づけると吸収しやすい。この2章を連続して読むとキャッシュ設計の全体像が一度に把握できる
  • 第5〜9章はサンプルアプリを手元で動かす前提で書かれているため、第5章のローカル環境構築を先に済ませてから読み進める
  • Server ActionとRoute Handlerの使い分けに迷った場合は4章と9章を並べて読み比べると、それぞれの適用場面の判断基準が明確になる

前提知識

  • ReactのuseState・useEffectなど基本Hooksの使い方
  • TypeScriptの基本的な型注釈(型定義・ジェネリクスの読み取り)
  • HTTPリクエスト/レスポンスの基礎とREST API呼び出しの経験
  • npmによるパッケージ管理と開発サーバー起動の基本操作

次に読む本

Next.js公式ドキュメント(App Routerセクション)

本書は 2024 年 3 月時点の仕様を網羅しているが、App Router のキャッシュ挙動はその後の Next.js バージョンで複数回仕様変更された。本書で概念を掴んだ後、実装時に公式の Changelog と Caching ページを照合することで、仕様差異による実装バグを事前に防げる

Prisma公式ドキュメント

本書の付録 A は Prisma の導入手順に留まり、スキーマ設計の判断基準・マイグレーション戦略・N+1 問題の回避には踏み込んでいない。実プロジェクトで Prisma を採用する段階で公式の Schema Reference と Queries セクションを参照すると、本書サンプルコードの意図が追跡できる

実践TypeScript

本書は TypeScript を前提とするが型の解説は最小限で、Conditional Types や mapped types を用いた型設計には踏み込んでいない。サンプルコードの型注釈を読み解くだけでなく自前の型定義を書けるようになる段階で参照すると、型システムへの理解が一段深まる

出版社による内容紹介

最新のNext.jsを現場で使うために実践的な知識を詰め込んだ一冊です。フレームワークの基礎はもちろん、パフォーマンスを上げるための知識や関連ライブラリまで、詳細なサンプルコードをもとに解説していきます。 第1章:Next.jsの基礎 ー 1.1:Next.jsプロジェクトの始め方 ー 1.2:アプリケーションのルーティング ー 1.3:SPAならではのナビゲーション ー 1.4:ネスト可能なレイアウト 第2章:Server Componentとレンダリング ー 2-1:Server ComponentとClient Component ー 2-2:Server Componentのデータ取得 ー 2-3:動的データ取得と静的データ取得 ー 2-4:Routeのレンダリング 第3章:App Routerの規約 ー 3.1:Segment構成ファイル ー 3.2:Segment構成フォルダ ー 3.3:Parallel RoutesとIntercepting Routes ー 3.4:Routeのメタデータ 第4章:Route Handler ー 4.1:Route Handlerの定義 ー 4.2:Route Handlerのレンダリング ー 4.3:Route Handlerの使用例 第5章:サンプルアプリの概要 ー 5.1:サンプルコードの概要とシステム構成 ー 5.2:ローカル開発環境の構築 ー 5.3:ORMライブラリ「Prisma」の概要 ー DBビジュアルエディター「Prisma Studio」の概要 ー 5.5:開発環境のストレージサーバー 第6章:データ取得とキャッシュ ー 6.1:サンプルコード共通のUIコンポーネント ー 6.2:fetch関数でのデータ取得 ー 6.3:fetch関数のRequestのメモ化 ー 6.4:fetch関数のキャッシュ ー 6.5:Prisma Clientでのデータ取得 ー 6.6:Prisma ClientのRequestのメモ化 ー 6.7:Prisma Clientのキャッシュ 第7章:認証機能 ー 7.1:環境変数の設定 ー 7.2:OAuthクライアントの作成 ー 7.3:NextAuth.jsの導入 ー 7.4:ログインユーザーのデータ表示 ー 7.5:閲覧ユーザーに応じた表示分岐 第8章:モーダル表示とデータ連携 ー 8.1:汎用的なモーダルコンポーネント ー 8.2:Parallel RoutesとIntercepting Routesを用いたモーダル ー 8.3:バックエンド間連携によるデータ保存 ー 8.4:バックエンド間連携によるデータ削除 第9章:データ更新とUI ー 9.1:Server Actionの基礎 ー 9.2:Server Actionによるデータ保存 ー 9.3:Server Actionによるデータ削除 ー 9.4:Server Actionのエラーハンドリング231 ー 9.5:Server ActionとフィードバックUI表示 ー 9.6:Server Actionによる楽観的UI更新 ー 9.7:Server ActionのFormバリデーション ー 9.8:Revaliateの設計 第10章:パフォーマンスとキャッシュ ー 10.1:コンポーネント構造のパフォーマンスへの影響 ー 10.2:fetchCacheの設定 ー 10.3:静的Routeを増やす実装 ー 10.4:SSG Routeの実装 ー 10.5:SSG Routeのパフォーマンスの定量評価 ー 10.6:Next.jsによるアセットの最適化 ー 10.7:Next.jsの4種類のキャッシュ 付録A:Prisma ー A.1:Prisma schemaの概要 ー A.2:Prisma Clientの概要 ー A.3:Prismaのマイグレーションとシーディング

この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。

質問に答えるだけで、
あなたに合う専門書が見つかる

IT・デザイン・士業・医療・経理・教育・研究 ほか、あらゆる分野の専門書と 「読む順序」(学習ロードマップ)を収録。何を選べばいいか分からなくても、 いくつかの質問に答えるだけでたどり着けます。