カスタム App コンポーネント
Next.js はページの初期化に App
コンポーネントを使用します。これをオーバーライドすることで、ページの初期化を制御し、以下のことが可能です:
- ページ遷移時に共有されるレイアウトを作成
- ページに追加データを注入
- グローバル CSS の追加
使用方法
デフォルトの App
をオーバーライドするには、以下のように pages/_app
ファイルを作成します:
Component
プロパティは現在の page
を表すため、ルート間を移動するたびに Component
は新しい page
に変わります。したがって、Component
に渡すすべてのプロパティは page
で受け取られます。
pageProps
は、データ取得方法のいずれかであらかじめ読み込まれた初期プロパティを持つオブジェクトです。それ以外の場合は空のオブジェクトになります。
知っておくと良いこと:
- アプリが実行中にカスタム
App
を追加した場合、開発サーバーを再起動する必要があります。これはpages/_app.js
が以前存在しなかった場合にのみ必要です。App
はgetStaticProps
やgetServerSideProps
などの Next.js のデータ取得方法をサポートしていません。
App
での getInitialProps
の使用
App
で getInitialProps
を使用すると、getStaticProps
を持たないページの自動静的最適化が無効になります。
このパターンの使用は推奨しません。代わりに、ページやレイアウトのデータ取得をより簡単に行える App Router の段階的採用を検討してください。