Next.js第五章(动态路由)

作者:小满zs日期:2025/11/16

动态路由

动态路由是指在路由中使用方括号[]来定义路由参数,例如/blog/[id],其中[id]就是动态路由参数,因为在某些需求下,我们需要根据不同的id来显示不同的页面内容,例如商品详情页,文章详情页等。

基本用法[slug]

使用动态路由只需要在文件夹名加上方括号[]即可,例如[id],[params]等,名字可以自定义。

来看demo: 我们在app/shop目录下创建一个[id]目录

1//app/shop/[id]/page.tsx
2export default function Page() {
3    return <div>Page</div>
4}
5

image.png

访问路径为:http://localhost:3000/shop/123 其中123就是动态路由参数,这个可以是任意值。

路由片段[...slug]

我们如果需要捕获多个路由参数,例如/shop/123/456,我们可以使用路由片段来捕获多个路由参数,他的用法就是[...slug],其中slug就是路由片段,这个名字可以自定义,后面的片段有多少就捕获多少。

1//app/shop/[...id]/page.tsx
2export default function Page() {
3    return <div>Page</div>
4}
5

image.png

访问路径为:http://localhost:3000/shop/123/456/789 其中123456789就是动态路由参数,后面的片段有多少就捕获多少。

可选路由[[...slug]]

可选路由指的是,我们可能会有这个路由参数,也可能会没有这个路由参数,例如/shop/123,也可能是/shop,我们可以使用可选路由来捕获这个路由参数,他的用法就是[[...slug]],其中slug就是路由片段,这个名字可以自定义,后面的片段有多少就捕获多少。

1//app/shop/[[...id]]/page.tsx
2export default function Page() {
3    return <div>Page</div>
4}
5

image.png

这种方式比较灵活。

接受参数

使用useParams hook来接受参数,这个hook只能在客户端组件中使用。

1'use client'
2import { useParams } from "next/navigation";
3export default function ShopPage() {
4  const params = useParams();
5  console.log(params); //{id: '123'}  {id: ['123', '456']} 接受单个值以及多个值
6  return <div>ShopPage</div>;
7}
8

Next.js第五章(动态路由)》 是转载文章,点击查看原文


相关推荐


基于脚手架微服务的视频点播系统-脚手架开发部分(完结)elasticsearch与libcurl的简单使用与二次封装及bug修复
加班敲代码的Plana2025/11/15

基于脚手架微服务的视频点播系统-脚手架开发部分elasticsearch与libcurl的简单使用与二次封装及bug修复-完结 1.ElasticClient的使用1.1ES检索原理正排索引倒排索引 1.2ES核心概念1.2.1索引(index)1.2.2类型(Field)1.2.3字段(Field)1.2.4映射(mapping)1.2.5文档(document) 1.3 Kibana访问es进行测试1.3.1创建索引1.3.2新增数据1.3.3查看并搜索数据1.3.4删除索引


qinkun的缓存机制也有弊端,建议官方个参数控制
石小石Orz2025/11/14

公司前端基于qiankun架构,主应用通过qiankun加载子应用,子应用也可能通过qiankun继续加载子应用,反复套娃。经过测试,不断打开子应用后,会导致内存不断上上。通过快照分析,发现内存升高的元凶是qiankun内置的# import-html-entry。 import-html-entry 的作用是什么 import-html-entry 是 qiankun / single-spa 微前端生态的核心模块之一,用来: 加载远程 HTML 入口文件(entry HTML),并提取出其中


Python 的内置函数 int
IMPYLH2025/11/13

Python 内建函数列表 > Python 的内置函数 int Python 的内置函数 int() 是一个用于将其他数据类型转换为整数类型的重要函数。它具有以下详细特性: 基本功能: 将数字或字符串转换为整数语法:int(x, base=10)示例:int('123') # 返回 123 int(12.34) # 返回 12 参数说明: 第一个参数可以是: 数字(整数或浮点数)字符串(仅包含数字字符)布尔值(True 转为 1,False 转为 0) 可


✍️记录自己的git分支管理实践
你的人类朋友2025/11/11

前言 👋 你好啊,我是你的人类朋友! 因为本人的开发经常涉及各个分支间的同步,这一套同步的流程从刚开始的小心翼翼,到现在相对熟悉了 所以我想记录下自己工作中常用的分支同步的步骤 😆 顺便研究康康有没有可以优化的地方 🍃 正文 先介绍下背景情况吧 首先主分支为 master 其次,因为开发分为多个阶段,比如 phase_1、phase_2、phase_3 等 那就在 master 之后再创建 feature/phase_1、feature/phase_2 这样的分支,作为每一个 phase


草梅 Auth 1.11.0 发布与 GitHub 依赖安全更新 | 2025 年第 45 周草梅周报
草梅友仁2025/11/9

本文在 草梅友仁的博客 发布和更新,并在多个平台同步发布。如有更新,以博客上的版本为准。您也可以通过文末的 原文链接 查看最新版本。 前言 欢迎来到草梅周报!这是一个由草梅友仁基于 AI 整理的周报,旨在为您提供最新的博客更新、GitHub 动态、个人动态和其他周刊文章推荐等内容。 本周依旧在开发 草梅 Auth 中。 你也可以直接访问官网地址:auth.cmyr.dev/ Demo 站:auth-demo.cmyr.dev/ 文档地址:auth-docs.cmyr.dev/ 本周 草梅


理解 LangChain 智能体:create_react_agent 与 create_tool_calling_agent
奇舞精选2025/11/7

本文译者为 360 奇舞团前端开发工程师 原文标题:理解 LangChain 智能体:create_react_agent 与 create_tool_calling_agent 原文作者:Anil Goyal 原文地址:medium.com/@anil.goyal… 当我们使用 LangChain 构建 AI 智能体时,首先要做的是选择正确的智能体架构。 目前常用的2种架构是create_react_agent和create_tool_calling_agent。两者都可以让AI使用外部工具


windows npm打包无问题,但linux npm打包后部分样式缺失
悢七2025/11/4

原因 前端package.json中指定的是依赖版本范围,而linux中使用npm install安装的版本与windows不同。 例如"@ant-design/icons": “^4.0.0” 插入符号^意味着它可以安装最新的兼容版本。如果希望它安装特定版本,可以在版本前面删除^。 详见package.json文档和符号学 插入符号将让它安装一个不改变第一个数字的更高版本。例如,你的package.json为@ant-design/icons指定了^4.0.0,但它安装了4.6.2。由


【SCI二区IEEE复现】基于混合有限集模型预测控制(FCS-MPC)的模块化多电平换流器(MMC)整流电路仿真模型(Simulink仿真实现)
荔枝科研社2025/10/31

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭:行百里者,半于九十。 📋📋📋本文内容如下:🎁🎁🎁  ⛳️赠与读者 👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它


2025年前端菜鸟自救指南:从零搭建专业开发环境
良山有风来2025/10/29

你是不是经常遇到这种情况? 新入职一家公司,面对一堆看不懂的配置文件一脸懵逼。同事说“先npm install一下”,你却在终端里卡了半天。好不容易跑起来项目,想改个代码又不知道从哪下手。 别担心,这几乎是每个前端开发者都会经历的阶段。还记得我刚入行时,光是配置个Webpack就折腾了一整天,最后还是在同事帮助下才搞定。 但现在不一样了。经过这几年的实战积累,我总结出了一套超级简单的前端环境搭建方法。今天就把这套方法论完整分享给你,让你在2025年能够快速上手任何前端项目。 为什么你需要专业的开


两张大图一次性讲清楚k8s调度器工作原理
有态度的下等马2025/10/26

面试常被追问k8s调度器工作原理,一图胜10086句言,收藏 == 学废。😣😣 kube-scheduler负责将k8s pod调度到worker节点上。 当你部署pod时,在manifest文件pod规格上会指定cpu、memory、亲和性affinity、污点taints、优先级、持久盘等。 调度器的主要工作是识别create request然后选择满足要求的最佳节点。 分步解释: Pod Create Request: 外部系统(kubectl、cicd)发出了创建一个新pod的

首页编辑器站点地图

Copyright © 2025 聚合阅读

License: CC BY-SA 4.0