Enrutamiento basado en archivos e importaciones automáticas
Cree páginas en el directorio pages/ para obtener enrutamiento automático, comprenda los segmentos dinámicos y aproveche las importaciones automáticas de componentes y composables de Nuxt.
Enrutamiento basado en archivos e importaciones automáticas es una lección gratuita de Frontend Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Frontend Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Frontend Academy incluye 4 lecciones en total.
Nuxt 3 — Framework SSR de Vue
Nuxt 3 es para Vue lo que Next.js es para React: un framework con opiniones marcadas para SSR, SSG, enrutamiento basado en archivos, obtención de datos y un sistema avanzado de autoimportaciones.
Directorio pages/
Coloque componentes de Vue en pages/ y se convertirán en rutas; no es necesario configurar ningún router.
pages/
index.vue // route: /
about.vue // route: /about
blog/
index.vue // route: /blog
[slug].vue // route: /blog/:slug
users/
[id]/
profile.vue // route: /users/:id/profileRutas dinámicas con [param]
Los corchetes en los nombres de archivo crean segmentos dinámicos. Acceda a los parámetros con useRoute().
<!-- pages/blog/[slug].vue -->
<script setup>
const route = useRoute();
const { data: post } = await useFetch(`/api/posts/${route.params.slug}`);
</script>
<template>
<article>
<h1>{{ post.title }}</h1>
<div v-html="post.body" />
</article>
</template>Rutas catch-all
Utilice [...slug].vue para las rutas catch-all; coincide con cualquier ruta situada bajo esa carpeta.
// pages/docs/[...slug].vue
// matches /docs/getting-started, /docs/api/auth, etc.
<script setup>
const route = useRoute();
console.log(route.params.slug); // ['api', 'auth']
</script>Layouts
Los componentes de layouts/ envuelven las páginas. Establezca el layout activo para cada página con definePageMeta.
<!-- layouts/dashboard.vue -->
<template>
<div class="dashboard">
<Sidebar />
<main><slot /></main>
</div>
</template>
<!-- pages/dashboard/index.vue -->
<script setup>
definePageMeta({ layout: 'dashboard' });
</script>Layout predeterminado
layouts/default.vue se aplica a cualquier página que no tenga un layout especificado.
Navegación con NuxtLink
Utilice <NuxtLink> para la navegación en el cliente; Nuxt precarga las páginas enlazadas al pasar el cursor sobre ellas.
<template>
<nav>
<NuxtLink to="/">Home</NuxtLink>
<NuxtLink to="/blog">Blog</NuxtLink>
<NuxtLink :to="`/users/${userId}`">Profile</NuxtLink>
</nav>
</template>Navegación programática
Utilice navigateTo() en setup o en los controladores de eventos.
<script setup>
async function onLogin() {
await login(form);
await navigateTo('/dashboard');
}
</script>Autoimportaciones — Componentes
Coloque un componente en components/ y utilícelo en cualquier plantilla sin importarlo; Nuxt los detecta y registra automáticamente.
components/
AppHeader.vue
UserCard.vue
<!-- any page or component: -->
<template>
<AppHeader />
<UserCard :user="user" />
</template>Autoimportaciones — Composables
Los composables de composables/ se importan automáticamente.
// composables/useCounter.ts
export const useCounter = () => {
const count = ref(0);
const increment = () => count.value++;
return { count, increment };
};
<!-- any component: -->
<script setup>
const { count, increment } = useCounter(); // no import needed!
</script>Autoimportaciones — Utilidades
Las utilidades de Vue (ref, reactive, computed, watch, etc.) y las utilidades de Nuxt (useFetch, useState, navigateTo) se importan automáticamente.
Desactivar autoimportaciones
Puede desactivar una autoimportación específica en nuxt.config.ts si entra en conflicto con otro elemento.
export default defineNuxtConfig({
imports: {
autoImport: false // disable all auto-imports
}
});Comprobación rápida
¿Cómo se crea en Nuxt 3 una ruta que coincida con cualquier ruta situada bajo /docs/?
Resumen: enrutamiento y autoimportaciones
La carpeta pages/ crea rutas. [param] sirve para rutas dinámicas y [...slug] para rutas catch-all. Los layouts de layouts/ se eligen mediante definePageMeta. NuxtLink y navigateTo permiten la navegación. Las autoimportaciones se aplican a components/, composables/ y a las utilidades de Vue y Nuxt, sin importaciones manuales. Puede desactivarlas en nuxt.config.ts si es necesario.
Preguntas frecuentes
¿La lección «Enrutamiento basado en archivos e importaciones automáticas» es gratis?
Sí — el texto completo de «Enrutamiento basado en archivos e importaciones automáticas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Frontend Academy, actualiza a CoddyKit PRO. El curso de Frontend Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Enrutamiento basado en archivos e importaciones automáticas»?
Cree páginas en el directorio pages/ para obtener enrutamiento automático, comprenda los segmentos dinámicos y aproveche las importaciones automáticas de componentes y composables de Nuxt. Practicas Frontend Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Frontend Academy?
No se requiere experiencia previa. Frontend Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Enrutamiento basado en archivos e importaciones automáticas»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Frontend Academy?
Sí. Cada lección de Frontend Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Enrutamiento basado en archivos e importaciones automáticas
- useFetch y useAsyncData
- Módulos de Nuxt: imágenes, autenticación e i18n
- Implementación: estática frente a SSR