TanStack Router 路由匹配

路由匹配遵循一致且可预测的模式。本指南将解释路由树是如何进行匹配的。

当 TanStack Router 处理你的路由树时,你的所有路由都会被自动排序,以便优先匹配**最具体(most specific)**的路由。这意味着无论你定义路由树的顺序如何,路由总是会按照以下顺序进行排序:

  1. 索引路由 (Index Route)

  2. 静态路由 (Static Routes)(从最具体到最不具体)

  3. 动态路由 (Dynamic Routes)(从最长到最短)

  4. Splat/通配符路由 (Splat/Wildcard Routes)

考虑以下的伪路由树(定义时的顺序):

bash 复制代码
Root
  - blog
    - $postId
    - /
    - new
  - /
  - *
  - about
  - about/us

排序后,这个路由树将变为:

scss 复制代码
Root
  - /          (根索引路由,优先级最高)
  - about/us   (最具体的静态路由)
  - about      (较短的静态路由)
  - blog       (静态路由)
    - /        (Blog 的索引路由)
    - new      (Blog 下的静态路由)
    - $postId  (Blog 下的动态路由)
  - * (Splat/通配符,优先级最低)

这个最终顺序代表了基于特异性(specificity)进行路由匹配的顺序。

使用上述排序后的路由树,让我们来看看几个不同 URL 的匹配过程:

  • /blog

    bash 复制代码
    Root
      ❌ /
      ❌ about/us
      ❌ about
      ⏩ blog
        ✅ /
        - new
        - $postId
      - *
  • /blog/my-post

    bash 复制代码
    Root
      ❌ /
      ❌ about/us
      ❌ about
      ⏩ blog
        ❌ /
        ❌ new
        ✅ $postId
      - *
  • /

    markdown 复制代码
    Root
      ✅ /
      - about/us
      - about
      - blog
        - /
        - new
        - $postId
      - *
  • /not-a-route

    markdown 复制代码
    Root
      ❌ /
      ❌ about/us
      ❌ about
      ❌ blog
        - /
        - new
        - $postId
      ✅ *
相关推荐
永远的WEB小白26 分钟前
css改变svg图标的颜色
前端·javascript·css
lfwh31 分钟前
探针程序技术解析:基于 Spring Boot 非 Web 模式的云服务监控告警系统
前端·spring boot·后端
Ajie'Blog35 分钟前
AI 周报 | Claude Opus 4.8、Copilot Agent 和 Codex 工作流加速
前端·人工智能·gpt·ai·copilot·ai编程
sugar__salt43 分钟前
深入吃透前端线性数据结构:数组、栈、队列、链表核心原理与实战
前端·数据结构·链表
ikoala1 小时前
Codex 不得不装的 12 个插件,都在这了
前端·javascript·后端
道友可好1 小时前
用 Linter 驾驭 AI:机械化执行的艺术
前端·人工智能·后端
流浪码农~1 小时前
Element Plus DatePicker 动态设置每周起始日
前端·vue.js·elementui
jason_yang1 小时前
刚发版就背锅?前端版本控制就靠他version-rocket
前端
如果超人不会飞1 小时前
TinyVue NavMenu导航菜单组件使用指南
前端·vue.js
Jason_chen1 小时前
Linux 3.0 串口机制深度解析:传统8250驱动与基础RS-232/485支持
linux·前端