multiAI Summary Pending

vue-router

Provides comprehensive guidance for Vue Router including route configuration, navigation, dynamic routes, nested routes, route guards, programmatic navigation, and route meta. Use when the user asks about Vue Router, needs to set up routing, implement navigation guards, handle route parameters, or manage route transitions.

223 stars

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/vue-router/SKILL.md --create-dirs "https://raw.githubusercontent.com/partme-ai/full-stack-skills/main/skills/vue-skills/vue-router/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/vue-router/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How vue-router Compares

Feature / Agentvue-routerStandard Approach
Platform SupportmultiLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Provides comprehensive guidance for Vue Router including route configuration, navigation, dynamic routes, nested routes, route guards, programmatic navigation, and route meta. Use when the user asks about Vue Router, needs to set up routing, implement navigation guards, handle route parameters, or manage route transitions.

Which AI agents support this skill?

This skill is compatible with multi.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

## When to use this skill

Use this skill whenever the user wants to:
- Configure routing in Vue 2 or Vue 3 projects
- Implement dynamic routes, nested routes, and named routes
- Set up navigation guards (beforeEach, beforeResolve, afterEach)
- Use programmatic navigation with `router.push`, `router.replace`
- Implement lazy-loaded routes for code splitting
- Handle route meta fields for permissions and layout control

## How to use this skill

### Workflow

1. **Identify the Vue version** (Vue 2 uses Vue Router 3.x, Vue 3 uses Vue Router 4.x)
2. **Configure routes** with the appropriate API
3. **Add navigation guards** for authentication and authorization
4. **Implement lazy loading** for large page components

### 1. Vue Router 4 (Vue 3) Setup

```typescript
import { createRouter, createWebHistory } from 'vue-router';

const routes = [
  { path: '/', component: () => import('./views/Home.vue') },
  { path: '/users/:id', component: () => import('./views/UserDetail.vue'), props: true },
  {
    path: '/admin',
    component: () => import('./views/Admin.vue'),
    meta: { requiresAuth: true },
    children: [
      { path: 'dashboard', component: () => import('./views/AdminDashboard.vue') },
    ],
  },
];

const router = createRouter({
  history: createWebHistory(),
  routes,
});

// Navigation guard
router.beforeEach((to, from) => {
  if (to.meta.requiresAuth && !isAuthenticated()) {
    return { path: '/login' };
  }
});

export default router;
```

### 2. Vue Router 3 (Vue 2) Setup

```javascript
import Vue from 'vue';
import VueRouter from 'vue-router';

Vue.use(VueRouter);

const router = new VueRouter({
  mode: 'history',
  routes: [
    { path: '/', component: () => import('./views/Home.vue') },
    { path: '/about', component: () => import('./views/About.vue') },
  ],
});
```

### 3. Programmatic Navigation

```typescript
// Vue 3 with Composition API
import { useRouter } from 'vue-router';

const router = useRouter();
router.push({ name: 'user', params: { id: '123' } });
router.replace('/home');
router.go(-1);
```

## Best Practices

- Centralize route guards for permission checks; lazy-load large page components
- Use named routes with `params`/`query` for type-safe navigation; avoid storing sensitive data in routes
- Prefer `createWebHistory` for clean URLs; configure server-side fallback for HTML5 history mode
- Use route `meta` fields for layout control, breadcrumbs, and access control

## Resources

- Vue Router 4: https://router.vuejs.org/
- Vue Router 3: https://v3.router.vuejs.org/

## Keywords

vue router, routing, navigation guards, Vue 3, Vue 2, lazy loading, dynamic routes, nested routes, meta fields, programmatic navigation, createRouter