Next.js 数据获取
在构建现代 Web 应用程序时,数据获取是一个至关重要的环节。Next.js 提供了多种数据获取方法,使开发者能够根据需求选择最适合的方式。本文将详细介绍 Next.js 中的数据获取方法,包括服务端渲染(SSR)和静态生成(SSG),并通过实际案例帮助你理解这些概念。
什么是 Next.js 数据获取?
Next.js 是一个基于 React 的框架,支持服务端渲染(SSR)和静态生成(SSG)。数据获取是指在页面渲染之前从外部 API 或数据库获取数据的过程。Next.js 提供了三种主要的数据获取方法:
getStaticProps
:用于静态生成页面时获取数据。getServerSideProps
:用于服务端渲染页面时获取数据。getStaticPaths
:用于动态路由的静态生成。
接下来,我们将逐一讲解这些方法。
1. getStaticProps
:静态生成时获取数据
getStaticProps
用于在构建时获取数据并生成静态页面。这种方法适用于内容不经常变化的页面,例如博客文章或产品列表。
示例代码
export async function getStaticProps() {
const res = await fetch('https://api.example.com/posts');
const posts = await res.json();
return {
props: {
posts,
},
};
}
export default function Blog({ posts }) {
return (
<ul>
{posts.map((post) => (
<li key={post.id}>{post.title}</li>
))}
</ul>
);
}
解释
getStaticProps
是一个异步函数,在构建时运行。- 它从 API 获取数据,并将数据作为
props
传递给页面组件。