实现 getStaticProps
Next.js 中的预渲染
Next.js 提供两种预渲染方式:静态生成 (Static Generation) 和 服务端渲染 (Server-side Rendering)。两者的区别在于生成 HTML 页面的时机不同。
- 静态生成 是在构建时生成 HTML 的预渲染方式。预渲染的 HTML 会在每次请求时被复用。
- 服务端渲染 是在每次请求时生成 HTML 的预渲染方式。
重要的是,Next.js 允许你为每个页面选择使用哪种预渲染方式。你可以创建一个"混合"型 Next.js 应用,对大多数页面使用静态生成,对其他页面使用服务端渲染。
使用静态生成 (getStaticProps()
)
现在我们需要导入 getSortedPostsData
并在 pages/index.js
的 getStaticProps
中调用它。
在编辑器中打开 pages/index.js
,在导出的 Home
组件上方添加以下代码:
通过在 getStaticProps
的 props
对象中返回 allPostsData
,博客文章数据将作为 prop 传递给 Home
组件。现在你可以这样访问博客数据:
为了展示博客文章,我们来更新 Home
组件,在自我介绍部分下方添加一个包含数据的 <section>
标签。别忘了将 props 从 ()
改为 ({ allPostsData })
:
现在访问 http://localhost:3000 应该能看到博客数据了。
恭喜!我们已经成功获取了外部数据(来自文件系统),并使用这些数据预渲染了首页。
在下一页,我们将讨论使用 getStaticProps
的一些技巧。