CommunityProgramación y desarrollogithub.com

hyf0/vue-router-best-practices

Patrones de Vue Router 4, guardias de navegación, parámetros de ruta e interacciones del ciclo de vida entre rutas y componentes.

¿Qué es vue-router-best-practices?

Este skill proporciona una guía completa sobre las mejores prácticas de Vue Router 4, cubriendo desde la configuración básica hasta patrones avanzados. Es especialmente útil para desarrolladores que construyen aplicaciones Vue con enrutamiento complejo, ya que explica cómo usar guardias de navegación (`beforeEach`, `beforeResolve`, `afterEach`) para controlar el acceso a rutas, manejar parámetros de ruta de manera eficiente (`params`, `query`) y sincronizar correctamente el ciclo de vida de los componentes con las transiciones de ruta. Soporta Vue 3 con Composition API y Options API, y se integra naturalmente con herramientas como Vite y Vue DevTools. El skill incluye ejemplos prácticos de código, demostraciones de navegación programática y consejos para evitar errores comunes como la pérdida de estado del componente al cambiar de ruta.

Compatible con~Claude Code~Codex CLI~Cursor
Part ofReact
npx skills add https://github.com/hyf0/vue-skills/tree/main/skills/vue-router-best-practices

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace vue-router-best-practices?

Patrones de Vue Router 4, guardias de navegación, parámetros de ruta e interacciones del ciclo de vida entre rutas y componentes.

Configuración básica

import { createRouter, createWebHistory } from 'vue-router'
import Home from './views/Home.vue'
import About from './views/About.vue'

const routes = [
  { path: '/', component: Home },
  { path: '/about', component: About },
]

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

export default router

Guardias de navegación

Guardia global beforeEach

router.beforeEach((to, from) => {
  // Lógica de autenticación o redirección
  if (to.meta.requiresAuth && !isAuthenticated()) {
    return '/login'
  }
})

Guardia por ruta beforeEnter

const routes = [
  {
    path: '/admin',
    component: Admin,
    beforeEnter: (to, from) => {
      // Solo administradores
      if (!isAdmin()) return '/403'
    },
  },
]

Parámetros de ruta

const routes = [
  { path: '/user/:id', component: User, props: true },
]

// En el componente
const props = defineProps({
  id: String,
})

Ciclo de vida y navegación

Los componentes pueden reaccionar a cambios de ruta mediante onBeforeRouteUpdate:

import { onBeforeRouteUpdate } from 'vue-router'

onBeforeRouteUpdate((to, from) => {
  // Recargar datos cuando cambie el parámetro
  fetchUser(to.params.id)
})

Navegación programática

// Ir a una ruta
router.push({ name: 'User', params: { id: 123 } })

// Reemplazar historial
router.replace('/login')

// Retroceder
router.go(-1)

Buenas prácticas

  • Usar name en lugar de path para las rutas (más mantenible).
  • Pasar props a los componentes para evitar acoplamiento.
  • Aprovechar meta para metadatos de ruta (títulos, roles, etc.).
  • Utilizar route.query para parámetros opcionales y route.params para obligatorios.

Recursos adicionales

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

Skills relacionados