nuxt logo

Traducción de Documentación (No Oficial)

Páginas

Nuxt Kit proporciona un conjunto de utilidades para ayudarte a crear y usar páginas. Puedes usar estas utilidades para manipular la configuración de las páginas o para definir reglas de rutas.

extendPages

En Nuxt, las rutas se generan automáticamente basándose en la estructura de los archivos en el directorio pages. Sin embargo, puede haber escenarios en los que desees personalizar estas rutas. Por ejemplo, podrías necesitar agregar una ruta para una página dinámica no generada por Nuxt, eliminar una ruta existente o modificar la configuración de una ruta. Para tales personalizaciones, Nuxt ofrece la función extendPages, que te permite extender y alterar la configuración de las páginas.

Mira el video de Vue School sobre extendPages.

Uso

import { createResolver, defineNuxtModule, extendPages } from '@nuxt/kit'

export default defineNuxtModule({
  setup (options) {
    const { resolve } = createResolver(import.meta.url)

    extendPages((pages) => {
      pages.unshift({
        name: 'prismic-preview',
        path: '/preview',
        file: resolve('runtime/preview.vue'),
      })
    })
  },
})

Tipo

function extendPages(callback: (pages: NuxtPage[]) => void): void

Parámetros

callback: Una función que será llamada con la configuración de las páginas. Puedes alterar este array añadiendo, eliminando o modificando sus elementos. Nota: Debes modificar directamente el array de páginas proporcionado, ya que los cambios realizados en un array copiado no se reflejarán en la configuración.

PropiedadTipoRequeridoDescripción
namestringfalseEl nombre de la ruta. Útil para la navegación programática e identificación de rutas.
pathstringfalseLa ruta URL de la ruta. Si no se establece, Nuxt la inferirá de la ubicación del archivo.
filestringfalseRuta al archivo Vue que debe usarse como el componente para la ruta.
metaRecord<string, any>falseMetadatos personalizados para la ruta. Se pueden usar en diseños, middlewares o guardias de navegación.
aliasstring[] | stringfalseUna o más rutas alias para la ruta. Útil para soportar múltiples URLs.
redirectRouteLocationRawfalseRegla de redirección para la ruta. Soporta rutas nombradas, objetos o rutas de cadena.
childrenNuxtPage[]falseRutas hijas anidadas bajo esta ruta para anidamiento de diseño o vista.

extendRouteRules

Nuxt está impulsado por el motor de servidor Nitro. Con Nitro, puedes incorporar lógica de alto nivel directamente en tu configuración, lo cual es útil para acciones como redirecciones, proxy, caché y agregar encabezados a las rutas. Esta configuración funciona asociando patrones de rutas con configuraciones específicas de rutas.

Puedes leer más sobre las reglas de rutas de Nitro en la documentación de Nitro.

Mira el video de Vue School sobre agregar reglas de rutas y middlewares de rutas.

Uso

import { createResolver, defineNuxtModule, extendPages, extendRouteRules } from '@nuxt/kit'

export default defineNuxtModule({
  setup (options) {
    const { resolve } = createResolver(import.meta.url)

    extendPages((pages) => {
      pages.unshift({
        name: 'preview-new',
        path: '/preview-new',
        file: resolve('runtime/preview.vue'),
      })
    })

    extendRouteRules('/preview', {
      redirect: {
        to: '/preview-new',
        statusCode: 302,
      },
    })

    extendRouteRules('/preview-new', {
      cache: {
        maxAge: 60 * 60 * 24 * 7,
      },
    })
  },
})

Tipo

function extendRouteRules(route: string, rule: NitroRouteConfig, options?: ExtendRouteRulesOptions): void

Parámetros

route: Un patrón de ruta para coincidir.
rule: Una configuración de regla de ruta para aplicar a la ruta coincidente.

Sobre las configuraciones de reglas de rutas, puedes obtener más detalles en Renderizado Híbrido > Reglas de Rutas.

options: Un objeto para pasar a la configuración de la ruta. Si override está establecido en true, sobrescribirá la configuración de la ruta existente.

NombreTipoPredeterminadoDescripción
overridebooleanfalseSobrescribir la configuración de la regla de ruta, el valor predeterminado es false

addRouteMiddleware

Registra middlewares de rutas para que estén disponibles para todas las rutas o para rutas específicas.

Los middlewares de rutas también pueden definirse en plugins a través del composable addRouteMiddleware.

Lee más sobre los middlewares de rutas en la documentación de middleware de rutas.

Mira el video de Vue School sobre agregar reglas de rutas y middlewares de rutas.

Uso

import { addRouteMiddleware, createResolver, defineNuxtModule } from '@nuxt/kit'

export default defineNuxtModule({
  setup () {
    const { resolve } = createResolver(import.meta.url)

    addRouteMiddleware({
      name: 'auth',
      path: resolve('runtime/auth'),
      global: true,
    }, { prepend: true })
  },
})

Tipo

function addRouteMiddleware(input: NuxtMiddleware | NuxtMiddleware[], options?: AddRouteMiddlewareOptions): void

Parámetros

input: Un objeto de middleware o un array de objetos de middleware con las siguientes propiedades:

PropiedadTipoRequeridoDescripción
namestringtrueEl nombre del middleware.
pathstringtrueLa ruta del archivo al middleware.
globalbooleanfalseSi se establece en true, aplica el middleware a todas las rutas.

options: Un objeto con las siguientes propiedades:

PropiedadTipoPredeterminadoDescripción
overridebooleanfalseSi es true, reemplaza el middleware con el mismo nombre.
prependbooleanfalseSi es true, antepone el middleware antes de los middlewares existentes.