0Pricing
Frontend Academy · Lección

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/profile

Rutas 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

  1. Enrutamiento basado en archivos e importaciones automáticas
  2. useFetch y useAsyncData
  3. Módulos de Nuxt: imágenes, autenticación e i18n
  4. Implementación: estática frente a SSR
← Volver a Frontend Academy