next中 [slug]和[...slug]路由匹配的区别

在 Next.js 中,路由参数的匹配方式有两个主要形式:单个参数路径(使用方括号 [slug])和多个参数路径(使用扩展语法 […slug])。这两者的主要区别在于它们如何捕获 URL 中的路径段。

1、[slug] - 单个参数路径

  • 定义:使用方括号定义的路由参数(例如,[slug].js)可以匹配 URL 中的一个路径段。
  • 示例:如果你有一个文件 pages/blogs/[slug].tsx:
    路由 /blogs/my-first-post 会被匹配到 slug = “my-first-post”。
    如果访问 /blogs/2024/07/demo,这条路由将不会匹配,因为 [slug] 只能捕获一个部分,而这个路径段包含多个部分。

2、 […slug] - 扩展参数路径

  • 定义:使用扩展语法(例如,[…slug].js)可以匹配 URL 中的零个或多个路径段,并将它们作为数组捕获。
  • 示例:如果你有一个文件 pages/blogs/[…slug].tsx:
    路由 /blogs/my-first-post 会被匹配到 slug = [“my-first-post”]。
    路由 /blogs/2024/07/demo 会被匹配到 slug = [“2024”, “07”, “demo”]。
    甚至 /blogs/ 也将匹配到 slug = [](空数组),因为这是有效的路由。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值