こんにちは、SouDogです。
Web開発を始めると、Reactを使ったフレームワークとしてNext.jsの名前をよく耳にするでしょう。
本記事では、Next.jsの基本概念から実践的な使い方までを詳しく解説します。
Next.jsは、Reactの拡張フレームワークであり、サーバーサイドレンダリング(SSR)や静的サイト生成(SSG)を簡単に実装できることが特徴です。
また、SEO対策やパフォーマンスの向上にも優れています。
目次
1. Next.jsとは?
Next.jsは、Vercelが開発するReactベースのフレームワークで、以下の機能を提供します。
- サーバーサイドレンダリング(SSR):サーバー側でページを生成し、ユーザーに返す
- 静的サイト生成(SSG):事前にページを生成し、高速なページ表示を実現
- クライアントサイドレンダリング(CSR):通常のReactアプリのように動的なページ更新が可能
- Incremental Static Regeneration (ISR):一部のページのみを再生成し、高速なページ更新を実現
なぜNext.jsを使うのか?
Next.jsを使うメリットには、以下のようなものがあります。
- SEOに強い:SSRやSSGを活用することで、検索エンジンに最適化されたページを作成できる。
- パフォーマンスが向上:静的サイト生成(SSG)を利用すると、ユーザーに高速なページを提供できる。
- 開発が効率化:デフォルトでルーティング機能があり、設定不要でページ遷移ができる。
- フルスタック対応:API Routesを使うことで、サーバーサイドの処理も簡単に実装できる。
2. Next.jsの環境構築
Next.jsのプロジェクトを作成するには、Node.jsがインストールされていることを確認した後、以下のコマンドを実行します。
npx create-next-app@latest my-next-app cd my-next-app npm run dev
このコマンドを実行すると、ローカルサーバーが起動し、http://localhost:3000
でアプリが表示されます。
3. Next.jsの基本的な使い方
3.1 ページとルーティング
Next.jsでは、pages
フォルダにファイルを作成するだけで、自動的にルーティングが設定されます。
例えば、pages/about.js
を作成すると、http://localhost:3000/about
でアクセスできます。
// pages/about.js export default function About() { return <h1>Aboutページ</h1>; }
3.2 API Routes
Next.jsでは、pages/api
フォルダ内にAPIを作成することができます。
// pages/api/hello.js export default function handler(req, res) { res.status(200).json({ message: "Hello, Next.js!" }); }
これで、http://localhost:3000/api/hello
にアクセスすると、JSONレスポンスが返ってきます。
4. データフェッチの方法
Next.jsでは、データを取得するために以下の3つのメソッドを使用できます。
- getStaticProps (SSG): ビルド時にデータを取得し、静的ページとして生成する
- getServerSideProps (SSR): リクエストごとにデータを取得し、動的なページを提供する
- useEffect (CSR): クライアントサイドでデータを取得する
4.1 getStaticPropsを使ったデータフェッチ(SSG)
export async function getStaticProps() { const res = await fetch('https://jsonplaceholder.typicode.com/posts'); const posts = await res.json(); return { props: { posts, }, }; } export default function Blog({ posts }) { return ( <div> <h1>ブログ一覧</h1> <ul> {posts.map((post) => ( <li key={post.id}>{post.title}</li> ))} </ul> </div> ); }
5. 実践的なプロジェクトでの活用例
5.1 WordPressとNext.jsを連携(ヘッドレスCMS)
Next.jsは、WordPressのREST APIと連携してヘッドレスCMSとして利用することができます。
export async function getStaticProps() { const res = await fetch('https://example.com/wp-json/wp/v2/posts'); const posts = await res.json(); return { props: { posts, }, }; }
5.2 eCommerceサイトを構築
Next.jsは、ShopifyやWooCommerceと連携してECサイトを構築するのにも適しています。
まとめ
Next.jsは、Reactベースのフレームワークとして、SSR・SSG・ISRを活用できる柔軟な開発環境を提供します。本記事では、基本概念から実践的な使い方までを紹介しました。
ぜひ、Next.jsを活用して、自分のプロジェクトを構築してみてください!
コメント