Next.js(React应用开发框架)实战——路由
import { useRouter } from 'next/router';
export default function Post() {
const router = useRouter();
const { id } = router.query;
return (
<div>
<p>Post ID: {id}</p>
</div>
);
}
export async function getStaticPaths() {
// 假设我们有一个posts数组,包含我们想要预渲染的所有帖子ID
const posts = ['1', '2', '3', '4', '5'];
const paths = posts.map(id => ({ params: { id } }));
return {
paths,
fallback: 'blocking', // 或者 false
};
}
export async function getStaticProps({ params }) {
// 根据post的ID获取帖子的内容
// 例如,通过API调用或其他数据源
const postContent = { id: params.id, title: '示例标题', content: '示例内容' };
return {
props: {
post: postContent,
},
};
}
这个代码实例展示了如何使用Next.js的静态生成功能来预渲染一个帖子页面。getStaticPaths
函数定义了所有可能的静态路径,getStaticProps
根据路径参数获取相应的帖子内容,并将其作为props传递给页面组件。这样,当页面被请求时,Next.js会根据getStaticPaths
定义的路径列表预先生成静态HTML。
评论已关闭