Route Matching
Route matching은 일관적이고 예측 가능한 패턴을 따릅니다. 이 가이드에서는 라우트 트리가 어떻게 매칭되는지 설명합니다.
TanStack Router가 라우트 트리를 처리할 때, 모든 라우트는 가장 구체적인 라우트를 먼저 매칭하도록 자동으로 정렬됩니다. 이는 라우트 트리를 정의한 순서에 관계없이 항상 다음 순서로 정렬됨을 의미합니다:
- 인덱스 라우트
- 정적 라우트 (가장 구체적인 것부터 덜 구체적인 것까지)
- 동적 라우트 (가장 긴 것부터 짧은 것까지)
- Splat/Wildcard 라우트
다음과 같은 라우트 트리를 고려해보세요:
Root
- blog
- $postId
- /
- new
- /
- *
- about
- about/us
정렬 후, 이 라우트 트리는 다음과 같이 변경됩니다:
Root
- /
- about/us
- about
- blog
- /
- new
- $postId
- *
이 최종 순서는 라우트가 구체성에 따라 매칭되는 순서를 나타냅니다.
이 라우트 트리를 사용하여 몇 가지 다른 URL에 대한 매칭 과정을 따라가 봅시다:
/blog
Root ❌ / ❌ about/us ❌ about ⏩ blog - $postId ✅ / - new - *
/blog/my-post
Root ❌ / ❌ about/us ❌ about ⏩ blog ❌ / ❌ new ✅ $postId - *
/
Root ✅ / - about/us - about - blog - / - new - $postId - *
/not-a-route
Root ❌ / ❌ about/us ❌ about ❌ blog - / - new - $postId ✅ *
Pathless / Layout Route Matching
매칭 과정에서, 경로 없는(Pathless) / 레이아웃(Layout) 라우트는 평면적인 라우트로 간주됩니다. 경로 없는 라우트의 자식들 중에서 라우트를 찾지 못하면, 매칭은 경로 없는 라우트의 자식들을 벗어나 부모 서브트리의 나머지 부분을 통해 계속 진행됩니다.
NotFoundRoute
s and Matching
라우터에 대해 NotFoundRoute
를 구성하려는 경우, 이는 routeTree
의 일부로 전달되는 것이 아니라 notFoundRoute
옵션으로 전달되어야 합니다. 이는 NotFoundRoute
가 매칭 과정에서 고려되지 않으며, 다른 적합한 매칭이 없을 때만 폴백으로 렌더링되기 때문입니다.
NotFoundRoute
에 대한 자세한 내용은 Not Found Errors 가이드에서 확인할 수 있습니다.