getStaticPropsの実装
Next.jsにおけるプリレンダリング
Next.jsには2種類のプリレンダリング方式があります: 静的生成 (Static Generation) と サーバーサイドレンダリング (Server-side Rendering)。これらの違いは、ページのHTMLをいつ生成するかにあります。
- 静的生成 (Static Generation) は、ビルド時にHTMLを生成するプリレンダリング方式です。生成されたHTMLは各リクエストで_再利用_されます。
- サーバーサイドレンダリング (Server-side Rendering) は、各リクエストごとにHTMLを生成するプリレンダリング方式です。
重要な点として、Next.jsでは各ページごとに使用するプリレンダリング方式を選択できます。ほとんどのページで静的生成を使用し、一部のページでサーバーサイドレンダリングを使用する「ハイブリッド」なNext.jsアプリケーションを作成することが可能です。
静的生成の使用 (getStaticProps()
)
ここで、getSortedPostsData
のインポートを追加し、pages/index.js
内のgetStaticProps
内で呼び出す必要があります。
エディタでpages/index.js
を開き、エクスポートされたHome
コンポーネントの上に以下のコードを追加してください:
getStaticProps
内でallPostsData
をprops
オブジェクト内で返すことで、ブログ投稿データがHome
コンポーネントにプロップとして渡されます。これで以下のようにしてブログ投稿データにアクセスできます:
ブログ投稿を表示するために、Home
コンポーネントを更新して、自己紹介セクションの下にデータを表示する別の<section>
タグを追加しましょう。また、プロップを()
から({ allPostsData })
に変更するのを忘れないでください:
これでhttp://localhost:3000にアクセスすると、ブログデータが表示されるはずです。
おめでとうございます!外部データ(ファイルシステムから)を取得し、このデータを使ってインデックスページをプリレンダリングすることに成功しました。
次のページでは、getStaticProps
を使用する際のいくつかのヒントについて説明します。