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

Next.js App Router中是否有router.query的等效替代方案?

在Next.js App Router中获取URL Slug的方案

1. 服务器组件(Server Components)

如果你的页面或组件是默认的服务器组件,直接通过组件接收的params props就能拿到slug,这是App Router最直接的实现方式:

// app/[slug]/page.js
export default function Page({ params }) {
  const { slug } = params;
  return <div>当前URL中的Slug: {slug}</div>;
}

注意:方括号里的路由名称要和params里的字段严格对应,比如路由是app/articles/[articleSlug]/page.js,那就要用params.articleSlug来获取。

2. 客户端组件(Client Components)

如果是需要交互的客户端组件,要使用next/navigation提供的useParams钩子:

'use client';

import { useParams } from 'next/navigation';

export default function SlugDisplay() {
  const params = useParams();
  const slug = params.slug;
  return <div>当前URL中的Slug: {slug}</div>;
}

必须先添加'use client'指令声明为客户端组件,否则无法使用客户端专属的钩子。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 00:15:55