Sign In

@tanstack/vue-router

Package Overview
Dependencies
Maintainers
4
Versions
158
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install
This package has malicious versions linked to the ongoing "Mini Shai-Hulud" supply chain attack.

Affected versions:

1.169.51.169.8
View campaign page

@tanstack/vue-router

Modern and scalable routing for Vue applications

Source
npmnpm
Version
1.141.4
Version published
Weekly downloads
4.1K
-86.64%
Maintainers
4
Weekly downloads
 
Created
Source

TanStack Vue Router

TanStack Router Header

🤖 Type-safe router w/ built-in caching & URL state management for Vue!

#TanStack semantic-release Join the discussion on Github Best of JS

Visit tanstack.com/router for docs, guides, API and more!

File-Based Routing Conventions

Suffix/PatternPurpose
.route.tsRoute configuration (loader, validateSearch, head, etc.)
.component.vueThe component rendered for the route
.errorComponent.vueError boundary component for the route
.notFoundComponent.vueNot found component for the route
.lazy.tsLazy-loaded route configuration
_layout prefixLayout routes that wrap child routes
_ suffix (e.g., posts_.$postId)Unnested routes (break out of parent layout)
(groupName) directoryRoute groups (organizational, don't affect URL)
$paramDynamic route parameters

Examples from e2e/basic-file-routes/ project

src/routes/
├── __root.ts                   # Root route config
├── __root.component.vue        # Root layout component
├── __root.notFoundComponent.vue # Global not found component
├── index.route.ts              # "/" route config
├── index.component.vue         # "/" component
├── posts.route.ts              # "/posts" route config
├── posts.component.vue         # "/posts" layout component
├── posts.index.component.vue   # "/posts" index component
├── posts.$postId.route.ts      # "/posts/:postId" route config
├── posts.$postId.component.vue # "/posts/:postId" component
├── posts.$postId.errorComponent.vue  # Error boundary for post
├── posts_.$postId.edit.route.ts      # "/posts/:postId/edit" (unnested)
├── (group)/                    # Route group (no URL impact)
│   ├── _layout.route.ts        # Layout for group
│   ├── _layout.component.vue
│   └── inside.component.vue    # "/inside"
└── 대한민국.component.vue        # Unicode routes supported

Keywords

vue

FAQs

Package last updated on 17 Dec 2025

Related posts