Articulo de referencia

Nuxt

{{Cite web|url=https://www.npmjs.com/package/nuxt/v/0.0.1|title=Nuxt First Public Release|website=Npm}} "},"latest release version":{"wt":"{{wikidata|property|edit|reference|P34...

Nuxt es un framework web full-stack gratuito y de código abierto basado en Vue.js , Nitro y Vite . Nuxt está inspirado en Next.js , [ 4 ] que es un framework similar basado en React en lugar de la biblioteca JavaScript Vue .

La principal ventaja de Nuxt sobre el uso exclusivo de Vue es su sistema de renderizado universal. El framework funciona tanto como una aplicación de una sola página (SPA) en el navegador como un sitio web estático renderizado en el servidor , al " hidratar " una página renderizada en el servidor a una SPA completa después de su carga. Esto permite que los sitios web tengan los beneficios de optimización para motores de búsqueda y rendimiento de un sitio renderizado en el servidor, además de la interactividad de una aplicación renderizada en el cliente. [ 5 ] [ 6 ] Nuxt abstrae en gran medida las características de renderizado del servidor para el desarrollador, y por lo tanto puede tener una experiencia de desarrollo similar a la de una SPA tradicional que utiliza el sistema de componentes de archivo único (SFC) de Vue. [ 7 ]

Además de su mecanismo de renderizado universal, Nuxt también proporciona muchos otros beneficios y características que mejoran la experiencia de usuario, como enrutamiento basado en rutas, reemplazo de módulos en caliente (HMR), soporte para TypeScript de forma predeterminada y lógica de servidor y middleware . [ 8 ]

Características

Enrutamiento basado en rutas

En lugar de una aplicación Vue.js convencional , que normalmente requiere que cada ruta se registre manualmente, Nuxt utiliza enrutamiento basado en rutas para registrar automáticamente cada ruta en una aplicación. [ 9 ]

Las páginas se declaran en la pages/carpeta, donde el nombre del archivo de página se convierte en el nombre de la ruta. Se pueden agregar parámetros dinámicos usando corchetes, y rutas comodín usando tres puntos y corchetes, de forma muy similar a la sintaxis de propagación de matrices de JavaScript . [ 10 ]

  • /pages/about.vue- Partidos /sobre.
  • /pages/user/[id].vue- Coincide con todas las rutas directamente bajo /user.
  • /pages/posts/[...slug].vue- Coincide con todas las rutas bajo /posts.
  • /pages/admin/[[page]].vue- Coincide con /admin además de todas las rutas que se encuentran directamente debajo de ella.

Importaciones automáticas

Nuxt importa automáticamente la mayoría de las funciones de la API de composición de Vue y cualquier función auxiliar de las carpetas composables/y utils/. [ 11 ]

< script setup > // ref se importa automáticamente const count = ref ( 0 ); // useRoute también se importa automáticamente const route = useRoute ( ); </script><template> <span> { { count } } </span> </template>

Diseños

Nuxt admite diseños compatibles con SSR de forma nativa, lo que permite que páginas similares utilicen las mismas plantillas básicas, como el encabezado y el pie de página. Los diseños se declaran en la layouts/carpeta y funcionan mediante ranuras nativas de Vue.

Para habilitar diseños en un proyecto Nuxt, el punto de entrada de la aplicación app.vuedebe incluir un NuxtLayoutcomponente para alternar entre diseños para cada página. [ 12 ]

< ! -- Contenido del archivo app.vue de ejemplo -- > <template> <NuxtLayout> < NuxtPage / > </NuxtLayout> </template>

El diseño predeterminado se encuentra en layouts/default.vue, y debe incluir un espacio para el contenido de la página.

<!-- contenido del archivo de diseño de ejemplo --> < plantilla > < CustomNavbar /> < ranura /> < Pie de página personalizado /> </ plantilla >

Una página puede usar un diseño personalizado usando el definePageMetaasistente en una función o bloque de configuración. [ 13 ]

< script setup > definePageMeta ( { layout : "custom" , }) ; </script><template> < !-- esto ahora ocupará el espacio del diseño personalizado -- > </template>

Middleware

Nuxt añade soporte para middleware a las aplicaciones, lo que permite que la lógica del servidor se ejecute entre los cambios de navegación. Se admiten archivos de middleware tanto globales como específicos de la página. [ 14 ]

El middleware se declara en la middleware/carpeta, que exporta una función que recibe como parámetros las rutas actual y anterior. A partir de ahí, se pueden usar funciones auxiliares disponibles globalmente, como abortNavigation y navigateTo, para controlar la navegación. [ 15 ] [ 16 ]

export default defineNuxtMiddleware (( to , from ) => { // lógica de navegación if ( to . params . id === "0" ) return abortNavigation (); return navigateTo ( `/users/ ${ to . params . id } ` ); });

API del servidor

Nuxt también puede generar rutas y manejadores de API de servidorserver/ , utilizando la carpeta. Cualquier archivo colocado en server/apise convertirá en una ruta de API, y cualquier archivo colocado en server/routesse convertirá en un archivo de ruta, la diferencia radica en la ubicación final del archivo ( server/apiagrega un prefijo api a la ruta). [ 17 ]

// server/api/hello.ts export default defineEventHandler (( event ) => { return { some : "datos aquí" , }; });

Ahora se puede llamar a esto desde componentes que utilizan el useFetchcomponente componible.

< script setup > const { data } = await useFetch ( '/api/ hello ' ) </script><template> <pre> { { data } } </pre> </template>

Véase también

Referencias

  1. "Primera versión pública de Nuxt" . Npm .
  2. "Versión 4.5.0" . 18 de julio de 2026. Consultado el 19 de julio de 2026 .
  3. "Nuxt/LICENSE" . GitHub . Consultado el 19 de diciembre de 2023 .
  4. "Primera versión pública de Nuxt" . Npm . Consultado el 23 de marzo de 2017 .
  5. Omole, Olayinka (18 de marzo de 2019). "Nuxt: un marco de aplicación universal Vue.js" . Punto de sitio . Consultado el 18 de junio de 2020 .
  6. Berning, Dave (16 de abril de 2018). "Primeros pasos con la renderización del lado del servidor usando Nuxt" . Alligator.io . Consultado el 2 de julio de 2018 .
  7. "Desarrollo con Vue.js · Conceptos de Nuxt" . Nuxt . Consultado el 9 de febrero de 2025 .
  8. "Introducción · Primeros pasos con Nuxt" . Nuxt . Consultado el 9 de febrero de 2025 .
  9. "Enrutamiento · Primeros pasos con Nuxt" . Nuxt . Consultado el 6 de marzo de 2025 .
  10. "páginas/ · Estructura del directorio de Nuxt" . Nuxt . Archivado del original el 19 de agosto de 2023. Consultado el 6 de marzo de 2025 .
  11. "Auto-imports · Nuxt Concepts" . Nuxt . Consultado el 6 de marzo de 2025 .
  12. "Vistas · Primeros pasos con Nuxt" . Nuxt . Consultado el 6 de marzo de 2025 .
  13. "layouts/ · Estructura de directorios de Nuxt" . Nuxt . Consultado el 6 de marzo de 2025 .
  14. "middleware/ · Estructura de directorios de Nuxt" . Nuxt . Consultado el 6 de marzo de 2025 .
  15. «abortNavigation · Nuxt Utils» . Nuxt . Consultado el 6 de marzo de 2025 .
  16. "navigateTo · Nuxt Utils" . Nuxt . Consultado el 6 de marzo de 2025 .
  17. "server/ · Estructura de directorios de Nuxt" . Nuxt . Consultado el 6 de marzo de 2025 .
  • Sitio web oficialEdita esto en Wikidata
  • Nuxt en GitHub