You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next13客户端组件中如何获取动态路由参数(/home/[id])?

在Next.js 13客户端组件中获取动态路由参数的方法

在Next.js 13的App Router架构下,客户端组件无法再通过next/router的router.query获取动态路由参数,取而代之的是使用next/navigation提供的useParams钩子,具体实现步骤如下:

  • 标记组件为客户端组件:在组件文件最顶部添加'use client'指令,这是使用客户端钩子的前提。
  • 导入useParams钩子:从next/navigation模块中导入该钩子。
  • 获取并使用动态参数:调用useParams()会返回一个包含所有动态路由段参数的对象,直接通过属性名即可访问对应参数。

示例代码:

'use client'

import { useParams } from 'next/navigation'

export default function HomeDetail() {
  const params = useParams()
  // 对应路由 /home/123 时,params.id 的值为 '123'
  const id = Number(params.id) // 按需转换为数字类型

  return <div>当前动态路由ID:{id}</div>
}

补充说明:

  • useParams返回的所有参数值均为字符串类型,若需要其他类型需自行转换。
  • 对于嵌套动态路由(如/home/[id]/[category]),可通过params.id、params.category分别获取对应参数。
  • 服务端组件仍保持通过组件props的params属性获取动态参数的方式,不受此影响。

内容的提问来源于stack exchange,提问作者Waqas Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 08:44:54