3. Basic
Pagesとルーティング
Next.jsは、ファイルベースのルーティングを採用しています。pages
ディレクトリ内のファイルとフォルダ構造がそのままルートとしてマッピングされます。
使用例
// pages/index.js
export default function Home() {
return <h1>Home Page</h1>;
}
// pages/about.js
export default function About() {
return <h1>About Page</h1>;
}
上記の例では、/
ルートにアクセスするとHome
コンポーネントが、/about
ルートにアクセスするとAbout
コンポーネントが表示されます。
Pre-rendering
Next.jsは、静的生成(Static Generation)とサーバーサイドレンダリング(Server-Side Rendering)の両方をサポートしています。これにより、SEOとパフォーマンスが向上します。
Static Generation(SG)
ビルド時にHTMLを生成する方法です。静的サイトのように高速にページを提供します。
使用例
// pages/index.js
export async function getStaticProps() {
return {
props: {
message: "Hello, world!",
},
};
}
export default function Home({ message }) {
return <h1>{message}</h1>;
}
Server-Side Rendering(SSR)
リクエストごとにHTMLを生成する方法です。リアルタイムのデータが必要な場合に使用します。
使用例
// pages/index.js
export async function getServerSideProps() {
return {
props: {
message: "Hello, world!",
},
};
}
export default function Home({ message }) {
return <h1>{message}</h1>;
}
API Routes
Next.jsでは、APIルートを作成してサーバーレスファンクションを定義できます。pages/api
ディレクトリ内にファイルを作成することで、APIエンドポイントを追加できます。
使用例
// pages/api/hello.js
export default function handler(req, res) {
res.status(200).json({ message: 'Hello, world!' });
}