こんにちは、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を活用して、自分のプロジェクトを構築してみてください!



コメント