Next.js 面试题
目录

Next.js 如何获取路由参数?

· 约 3 分钟读完 · 第 18 / 132 章

推荐答案

在 Next.js 中,获取路由参数可以通过 useRouter 钩子或 getServerSideProps 和 getStaticProps 方法来实现。以下是两种常见的方式:

1. 使用 useRouter 钩子

2. 使用 getServerSideProps 或 getStaticProps

本题详细解读

1. 使用 useRouter 钩子

useRouter 是 Next.js 提供的一个钩子,用于访问路由信息。通过 router.query 可以获取动态路由参数。例如,如果路由是 /posts/[id],那么 router.query.id 将返回 id 参数的值。

  • 优点:简单易用,适合在客户端获取路由参数。
  • 缺点:只能在客户端使用,无法在服务器端渲染时获取参数。

2. 使用 getServerSideProps 或 getStaticProps

getServerSideProps 和 getStaticProps 是 Next.js 提供的用于服务器端渲染和静态生成的方法。通过 context.params 可以获取动态路由参数。

  • getServerSideProps:每次请求时都会调用,适合需要动态数据的页面。

  • getStaticProps:在构建时生成静态页面,适合内容不经常变化的页面。

  • 优点:可以在服务器端获取路由参数,适合需要服务器端渲染的场景。

  • 缺点:相对于 useRouter,代码稍微复杂一些。

总结

  • 如果你只需要在客户端获取路由参数,使用 useRouter 是最简单的方式。
  • 如果你需要在服务器端获取路由参数,或者需要服务器端渲染,使用 getServerSideProps 或 getStaticProps 是更好的选择。