核心摘要: 在 Next.js 的 App Router (
/app) 架構中已不再使用getStaticProps與getServerSideProps。取而代之的是基於 React Server Components (RSC) 的全新資料獲取模式。(這些 API 在 Pages Router 中仍然使用)
以下主要討論 App Router 架構 (
/app),Pages Router(/pages)僅做對照。
| 功能描述 | 舊版 Pages Router (/pages) |
新版 App Router (/app) |
|---|---|---|
| 靜態生成 (SSG) | getStaticProps |
fetch(url, { cache: 'force-cache' }) (13/14版的預設, 前提是 route 符合可靜態化的條件) |
| 伺服器端渲染 (SSR) | getServerSideProps |
fetch(url, { cache: 'no-store' })(15+ 之後的預設) |
| 增量靜態再生 (ISR) | revalidate (於 props 回傳) |
fetch(url, { next: { revalidate: 60 } }) |
| 動態路徑生成 | getStaticPaths |
generateStaticParams |
async/await)。props 作為中介,減少了資料序列化(Serialization)的成本。'use client'。useState, useEffect, onClick)。JavaScript
export async function getServerSideProps() {
const res = await fetch('<https://api.example.com/data>');
const data = await res.json();
return { props: { data } };
}
export default function Page({ data }) {
return <div>{data.title}</div>;
}