Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Next.js 入門解説: Reactとの決定的な違いとApp Routerに基づくモダンWeb開発
Search
MIKIO KUBO
November 19, 2025
Programming
1
25
Next.js 入門解説: Reactとの決定的な違いとApp Routerに基づくモダンWeb開発
# Next.js 入門解説
## Reactとの決定的な違いとApp Routerに基づくモダンWeb開発
MIKIO KUBO
November 19, 2025
Tweet
Share
More Decks by MIKIO KUBO
See All by MIKIO KUBO
Google Antigravity and Vibe Coding: Agentic Development Guide
mickey_kubo
2
25
React完全入門
mickey_kubo
1
28
TypeScript初心者向け完全ガイド
mickey_kubo
1
31
ポストSaaS時代:コンポーザブル、エージェント 型、成果指向ソフトウェアへの移行を読み解く
mickey_kubo
1
53
AIの二元論 -ビジネスリーダーのための水平型AIと垂直型AIに関する戦略的ガイド-
mickey_kubo
1
55
AIの二元論(詳細版)
mickey_kubo
1
21
TransformerからMCPまで(現代AIを理解するための羅針盤)
mickey_kubo
7
6.2k
Agentic AI フレームワーク戦略白書 (2025年度版)
mickey_kubo
1
90
Agentic AIを用いたサプライチェーン最適化
mickey_kubo
1
140
Other Decks in Programming
See All in Programming
Nitro v3
kazupon
2
310
Promise.tryで実現する新しいエラーハンドリング New error handling with Promise try
bicstone
3
460
関数の挙動書き換える
takatofukui
1
470
KoogではじめるAIエージェント開発
hiroaki404
1
480
CloudNative Days Winter 2025: 一週間で作る低レイヤコンテナランタイム
ternbusty
4
1k
開発生産性が組織文化になるまでの軌跡
tonegawa07
0
170
SUZURIの規約違反チェックにおけるクリエイタフィードバックの試⾏錯誤/Trial and Error in Creator Feedback for SUZURI's Terms of Service Violation Checks
ae14watanabe
1
150
自動テストのアーキテクチャとその理由ー大規模ゲーム開発の場合ー
segadevtech
2
1k
The Missing Link in Angular's Signal Story: Resource API and httpResource
manfredsteyer
PRO
0
130
ノーコードからの脱出 -地獄のデスロード- / Escape from Base44
keisuke69
0
710
アーキテクチャと考える迷子にならない開発者テスト
irof
8
3k
しっかり学ぶ java.lang.*
nagise
1
370
Featured
See All Featured
Building Applications with DynamoDB
mza
96
6.8k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Visualization
eitanlees
150
16k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Six Lessons from altMBA
skipperchong
29
4.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Transcript
Next.js 入門解説 React との決定的な違いとApp Router に基づくモダンWeb 開発 1
現代のWeb 開発に求められる要件とReact の課題 「React だけ」では解決できない課題があります 現代のWeb アプリの必須要件: 初期表示の高速化、SEO対策、堅牢なインフラ React (
ライブラリ) の限界: Reactは「UI構築」に特化しており、これだけでは不足 ルーティング、SEO、APIなどを個別に設定する必要がある 設定の沼 (Configuration Hell): 数多くの外部ライブラリを組み合わせる複雑さが開発の負担に 2
Next.js とは:React を拡張したフルスタックフレームワーク 複雑な設定を排除し、開発に集中できる環境を提供 フルスタックフレームワーク: Reactを基盤としつつ、必要なインフラ機能をすべて内蔵 オールインワンの機能: サーバー側レンダリング (SSR) /
静的サイト生成 (SSG) ファイルシステムベースのルーティング APIルートの作成機能 メリット: 高パフォーマンスでSEOに強いアプリを 迅速に構築可能 3
比較:React ( ライブラリ) vs Next.js ( フレームワーク) 項目 React (
ライブラリ) Next.js ( フレームワーク) 役割 UIパーツの構築 フルスタック開発基盤 ルーティング 外部ライブラリが必要 ファイルベースで内蔵 レンダリング 基本的にCSR (遅い) SSR / SSG ( 高速・SEO) API 別途サーバー構築 API ルート内蔵 画像最適化 手動設定 <Image> で自動化 4
Next.js のレンダリング戦略:ハイブリッドアプローチ コンテンツに応じて最適なレンダリング手法を選択可能 CSR (Client-Side Rendering): ブラウザで描画。インタラクティブなUI向け。 SSR (Server-Side Rendering):
サーバーで都度描画。頻繁に更新されるデータ向け。 SSG (Static Site Generation): ビルド時にHTML生成。ブログや概要ページ向け(最速)。 ハイブリッドの強み: ページごとにこれらを使い分け、パフォーマンスとSEOを最大化 5
デプロイメントの革命:Vercel との連携 インフラ設定不要で、高度な配信環境を実現 Vercel との密接な連携: Next.jsの開発元プラットフォーム 自動最適化: 静的ファイルはCDNへ、APIはサーバーレス関数へ自動配置 簡単なデプロイ: Git連携のみで「ハイブリッドレンダリング」環境が完成
初学者でもインフラ構築の学習コストなしに公開可能 6
新しい基盤:App Router のアーキテクチャ ファイルシステムとURL が直感的に対応 フォルダ構造 = URL パス: app
ディレクトリ内のフォルダ名がそのままURLになる 安全な設計: フォルダを作っただけでは公開されない page.tsx を作成して初めてアクセス可能になる 動的ルーティング: [slug] のようにフォルダ名をつけるだけでパラメータ取得可能 複雑な設定コードが不要に 7
App Router における主要ファイルの役割 ファイル名によって役割が明確に定義されています ファイル名 役割 説明 page.tsx ルートUI そのURLで表示されるメインコンテンツ
layout.tsx レイアウト ヘッダーなど、ページ遷移しても維持されるUI loading.tsx 読み込み中 データ取得中のローディング表示 error.tsx エラー処理 エラー発生時のフォールバック表示 route.ts API定義 Web APIのエンドポイントを作成 8
革新技術:Server Components (RSC) サーバーとクライアントの役割を明確に分離 Server Components ( デフォルト): サーバー側でレンダリングし、結果のHTMLだけを送信 JS
バンドルサイズ削減: クライアントの読み込みが劇的に高速化 セキュリティ: データベース接続情報などを安全に扱える できないこと: useState や onClick などの対話機能は使えない → インタラクティブな部分のみ Client Components を使う 9
Client Components の使い所 必要な部分だけを「クライアント」にする 役割: ユーザーとの対話(クリック、入力)、状態管理(Hooks)を担当 実装方法: ファイル先頭に 'use client'
を記述 ベストプラクティス: アプリの大部分は Server Components (RSC) で構成 インタラクティブな「末端のUI」だけを Client Components にする 10
モダンなデータフェッチング Server Components なら、データ取得が直感的かつシンプルに // app/page.tsx (Server Component) export default
async function Page() { // サーバー側で直接APIを叩ける let data = await fetch('[https://api.vercel.app/blog](https://api.vercel.app/blog)'); let posts = await data.json(); return ( <ul> {posts.map((post) => ( <li key={post.id}>{post.title}</li> ))} </ul> ); } useEffect やローディング管理が不要になり、コードが激減。 11
標準搭載された最適化機能 (Optimization) 開発者が意識せずとも、ベストプラクティスが適用される 画像最適化 ( <Image> ): デバイスに応じたサイズ変更、WebP変換、遅延ロードを自動化 レイアウトのズレ (CLS)
を自動で防止 ナビゲーション最適化 ( <Link> ): リンクが画面に入ると、リンク先をバックグラウンドで先読み ユーザーがクリックした瞬間、即座に遷移完了 12
開発者体験 (DX) と TypeScript 堅牢で快適な開発環境がすぐに手に入る TypeScript 完全対応: セットアップ不要で、型安全な開発が可能 リンクの型安全性: プロジェクト内のルート情報を自動解析
存在しないページへのリンクをエディタ上で警告 結果: デバッグ時間の短縮と、保守性の高いコード維持 13
まとめ:Next.js を学ぶ価値 「UI ライブラリ」から「プロダクション環境」への架け橋 Next.js = React + インフラストラクチャ Reactの良さを活かしつつ、Web開発の複雑な課題を一挙に解決
習得するスキル: サーバー機能、レンダリング戦略、パフォーマンス最適化 結論: インフラ管理から解放され、 ユーザー体験とビジネスロジックに集中でき る最強のツール 14