getServerSideProps
getServerSideProps 是一个 Next.js 函数,可用于在请求时获取数据并渲染页面内容。
示例
你可以通过从页面组件导出 getServerSideProps 来使用它。以下示例展示了如何在 getServerSideProps 中从第三方 API 获取数据,并将数据作为 props 传递给页面:
- TypeScript
- JavaScript
pages/index.tsx
import type { InferGetServerSidePropsType, GetServerSideProps } from 'next'
type Repo = {
name: string
stargazers_count: number
}
export const getServerSideProps = (async () => {
// 从外部 API 获取数据
const res = await fetch('https://api.github.com/repos/vercel/next.js')
const repo: Repo = await res.json()
// 通过 props 将数据传递给页面
return { props: { repo } }
}) satisfies GetServerSideProps<{ repo: Repo }>
export default function Page({
repo,
}: InferGetServerSidePropsType<typeof getServerSideProps>) {
return (
<main>
<p>{repo.stargazers_count}</p>
</main>
)
}
pages/index.js
export async function getServerSideProps() {
// 从 外部 API 获取数据
const res = await fetch('https://api.github.com/repos/vercel/next.js')
const repo = await res.json()
// 通过 props 将数据传递给页面
return { props: { repo } }
}
export default function Page({ repo }) {
return (
<main>
<p>{repo.stargazers_count}</p>
</main>
)
}