システム開発

Web System

hero

Next.jsを基礎から理解する

 

 

App RouterとPages Router

App Router はより柔軟なレイアウト管理やサーバーコンポーネントを活用した最新のルーティング方式で、新しいプロジェクトや複雑なページレイアウトが必要な場合に適しています。

 

ルートディレクトリ

App Routerはappディレクトリ、Pages Routerはpagesディレクトリを使います。

 

レイアウト管理

App Routerはlayout.tsxを各ディレクトリに配置してレイアウトをネストさせます。Pages Routerは、pages/_app.tsxでグローバルなレイアウトを定義します。

 

サーバーサイド vs クライアントサイド

App Routerはデフォルトでサーバーサイドレンダリングをサポートし、React Server Componentsを使用できます。Pages Routerはクライアントサイドレンダリングが主流で、必要に応じてgetServerSidePropsを使用します。

 

 

レンダリング方式

 

静的サイト生成 (Static Site Generation: SSG)

SSGは、ビルド時に静的なHTMLファイルを生成する方式です。このHTMLファイルはビルド時に生成され、すべてのリクエストに対してそのまま配信されます。APIのデータやコンテンツが頻繁に更新されない場合に有効です。

 

サーバーサイドレンダリング (Server-Side Rendering: SSR)

SSRは、リクエストごとにページがサーバーでレンダリングされ、HTMLがクライアントに配信される方式です。動的なデータが必要な場合に適しています。

 

インクリメンタル静的再生成 (Incremental Static Regeneration: ISR)

ISRは、静的サイト生成(SSG)の利点を活かしつつ、ページを一定間隔で再生成する方式です。これにより、リアルタイム性をある程度保ちながら静的生成のパフォーマンスを維持することができます。

 

クライアントサイドレンダリング (Client-Side Rendering: CSR)

CSRは、JavaScriptを使ってクライアント側でデータを取得し、ページを動的にレンダリングする方式です。初期ページはサーバーから配信されますが、追加のデータはクライアント側で取得して表示します。

 

 

VercelへのDeploy

vercelへのdeployであれば、超簡単です。

 

 

VercelにDeployしてもソースコードが更新されない

ブランチはmainからdevelopに変更されていますか?

私も全然更新されなくて最初はキャッシュを疑っていたのですが、別の理由でした。

デフォルトブランチを"develop"に変更していたのですが、Production Branchをmainからdevelopに変更していなかったのが原因でした。

変更前からDeploymentsでビルドが成功するかログを見ていたのですが、developブランチにpushしても毎回動いていたので気付きませんでした💦