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