• Skip to primary navigation
  • Skip to main content
  • Skip to footer

Codemotion Magazine

We code the future. Together

  • Discover
    • Events
    • Community
    • Partners
    • Become a partner
    • Hackathons
  • Magazine
    • DevOps
    • Carreras tech
    • Frontend
    • Inteligencia Artificial
    • Dev life
    • Desarrollo web
  • Talent
    • Discover Talent
    • Jobs
    • Manifiesto
  • Companies
  • For Business
    • EN
    • IT
    • ES
  • Sign in
ads

Codemotionmayo 30, 2024

Guía de Nuxt.js con ejemplos de código

Lenguajes de programación
nuxt.js guide with code examples
facebooktwitterlinkedinreddit

Ya sea que estés construyendo un blog personal, una aplicación web dinámica o un sitio ecommerce complejo, Nuxt.js ofrece una suite de características poderosas que pueden simplificar tu proceso de desarrollo y mejorar el rendimiento de tu sitio.

¡Esperamos que esta guía de Nuxt.js y todas sus posibilidades te ayuden a aprovechar al máximo esta poderosa framework!

Recommended article
marzo 5, 2025

¿Realmente necesitas esa Nueva Tecnología o solo quieres usarla?

srjonro

Lenguajes de programación

Nuxt.js no es solo otra herramienta en el arsenal del desarrollador web; es un marco integral que se basa en Vue.js. Simplifica el desarrollo de aplicaciones renderizadas del lado del servidor (SSR) y estáticas, haciendo más fácil crear sitios rápidos, escalables y optimizados para SEO. Lo que diferencia a Nuxt.js es su capacidad para gestionar las complejidades del desarrollo web moderno, permitiéndote enfocarte en escribir la lógica de tu aplicación sin preocuparte por la infraestructura subyacente.

1. Introducción a Nuxt.js

Nuxt.js se construye sobre Vue.js y lo mejora proporcionando una estructura definida y un conjunto de características poderosas que simplifican el desarrollo de aplicaciones complejas. Soporta renderizado del lado del servidor (SSR), generación de sitios estáticos (SSG) y renderizado del lado del cliente (CSR).

Características Clave:

  • Enrutamiento Automático: Sistema de enrutamiento basado en archivos.
  • Renderizado del Lado del Servidor (SSR): Mejora el SEO y el rendimiento.
  • Generación de Sitios Estáticos (SSG): Genera sitios estáticos para tiempos de carga más rápidos.
  • Arquitectura Modular: Más de 50 módulos para integración fácil de funcionalidades como soporte para PWA, autenticación y más.
  • Experiencia de Desarrollador: Experiencia de desarrollo mejorada con reemplazo de módulos en caliente (HMR), informes de errores detallados y un sistema extensivo de plugins.

¿Para qué se utiliza principalmente Nuxt.js?

  1. Plataformas de Comercio Electrónico:
    • Sitios de comercio electrónico personalizados construidos con Nuxt.js y backends RESTful Laravel, proporcionando experiencias de compra fluidas.
    • Aplicaciones Web Progresivas (PWAs) de comercio electrónico construidas sobre Shopify, aprovechando Nuxt.js para mejorar el rendimiento y la escalabilidad.
    • Sitios web de comercio electrónico que utilizan Nuxt.js para la gestión dinámica de contenido y mejor SEO.
  2. Sitios de Contenido y Medios:
    • Directorios de podcasts que utilizan Nuxt.js para la renderización del lado del servidor y la optimización SEO.
    • Sitios web de farmacias integrados con la API de WordPress, demostrando cómo Nuxt.js puede trabajar con varios sistemas de gestión de contenido.
  3. Sitios Corporativos e Institucionales:
    • Sitios corporativos para empresas de biotecnología, utilizando Nuxt.js para un diseño limpio y un rendimiento rápido.
    • Portales web universitarios que combinan Nuxt.js con APIs REST impulsadas por Drupal para un manejo eficiente de datos y presentación.
  4. Plataformas Comunitarias y Sociales:
    • Bolsas de trabajo construidas con Nuxt.js y Rails API, desplegadas en plataformas como Netlify para una gestión sencilla.
    • Plataformas que conectan desarrolladores en todo el mundo, construidas con Nuxt.js y Django Rest Framework, facilitando interacciones comunitarias y el intercambio de contenido.
  5. Otros Usos Notables:
    • Plataformas de gestión de estacionamiento en línea que utilizan Nuxt.js para su front-end y otros frameworks para el backend.
    • Software global de análisis de pagos para gerentes de recursos humanos y compensaciones, demostrando la capacidad de Nuxt.js para manejar visualización de datos complejos y análisis.

2. Configuración de Nuxt.js

Para empezar con Nuxt.js, necesitas tener Node.js y npm (o yarn) instalados.

shCopia codicenpx create-nuxt-app my-nuxt-app
cd my-nuxt-app
npm run dev

Este comando crea un nuevo proyecto Nuxt.js y arranca el servidor de desarrollo.

3. Estructura del Proyecto

Un proyecto típico de Nuxt.js tiene la siguiente estructura:

arduinoCopia codicemy-nuxt-app/
├── assets/
├── components/
├── layouts/
├── pages/
├── plugins/
├── static/
├── store/
├── nuxt.config.js
  • assets: Activos no compilados como Sass, imágenes o fuentes.
  • components: Componentes Vue reutilizables en las páginas.
  • layouts: Diseños para diferentes páginas.
  • pages: Archivos Vue que corresponden a rutas de la aplicación.
  • plugins: Plugins de JavaScript que se ejecutan antes de inicializar la aplicación Vue.js raíz.
  • static: Archivos en este directorio se sirven en la raíz de tu sitio.
  • store: Archivos de la tienda Vuex para la gestión del estado.
  • nuxt.config.js: Archivo de configuración para Nuxt.js.

4. Páginas y Enrutamiento

Nuxt.js utiliza un sistema de enrutamiento basado en archivos. Cualquier archivo Vue en el directorio pages se convierte automáticamente en una ruta.

htmlCopia codice<!-- pages/index.vue -->
<template>
  <div>
    <h1>Página Principal</h1>
  </div>
</template>

<script>
export default {
  name: 'HomePage'
}
</script>
htmlCopia codice<!-- pages/about.vue -->
<template>
  <div>
    <h1>Página de Acerca de</h1>
  </div>
</template>

<script>
export default {
  name: 'AboutPage'
}
</script>

Estos archivos crean las rutas / y /about.

5. Diseños

Los diseños proporcionan una forma de reutilizar estructuras comunes. Crea un diseño predeterminado en layouts/default.vue.

htmlCopia codice<!-- layouts/default.vue -->
<template>
  <div>
    <header>
      <nav>
        <nuxt-link to="/">Inicio</nuxt-link>
        <nuxt-link to="/about">Acerca de</nuxt-link>
      </nav>
    </header>
    <nuxt />
    <footer>
      <p>Contenido del Pie de Página</p>
    </footer>
  </div>
</template>

Este diseño se aplica automáticamente a todas las páginas a menos que se especifique un diseño diferente.

6. Renderizado del Lado del Servidor (SSR)

Nuxt.js maneja SSR de manera predeterminada. Para obtener datos del lado del servidor, utiliza el método asyncData en tus componentes de página.

htmlCopia codice<!-- pages/index.vue -->
<template>
  <div>
    <h1>{{ title }}</h1>
  </div>
</template>

<script>
export default {
  async asyncData({ $axios }) {
    const response = await $axios.$get('https://api.example.com/data')
    return { title: response.title }
  }
}
</script>

7. Generación de Sitios Estáticos (SSG)

Para generar un sitio estático, añade lo siguiente a nuxt.config.js:

javascriptCopia codiceexport default {
  target: 'static',
}

Luego ejecuta:

shCopia codicenpm run generate

Este comando genera una versión estática de tu sitio en el directorio dist.

8. Plugins

Los plugins de Nuxt.js te permiten ejecutar código personalizado antes de inicializar la aplicación Vue.js raíz.

javascriptCopia codice// plugins/axios.js
export default function({ $axios }) {
  $axios.onRequest(config => {
    console.log('Haciendo solicitud a ' + config.url)
  })
}

// nuxt.config.js
export default {
  plugins: ['~/plugins/axios.js']
}

9. Tienda Vuex

Nuxt.js soporta Vuex para la gestión del estado. Crea una tienda añadiendo archivos al directorio store.

javascriptCopia codice// store/index.js
export const state = () => ({
  counter: 0
})

export const mutations = {
  increment(state) {
    state.counter++
  }
}

Usa la tienda en los componentes:

htmlCopia codice<template>
  <div>
    <button @click="increment">Incrementar</button>
    <p>{{ counter }}</p>
  </div>
</template>

<script>
export default {
  computed: {
    counter() {
      return this.$store.state.counter
    }
  },
  methods: {
    increment() {
      this.$store.commit('increment')
    }
  }
}
</script>

10. Middleware

Nuxt.js soporta funciones middleware que se ejecutan antes de renderizar una página o diseño.

javascriptCopia codice// middleware/auth.js
export default function({ store, redirect }) {
  if (!store.state.authenticated) {
    return redirect('/login')
  }
}

// nuxt.config.js
export default {
  router: {
    middleware: 'auth'
  }
}

11. Módulos

Nuxt.js tiene un ecosistema rico de módulos para extender su funcionalidad. Por ejemplo, para agregar Google Analytics:

shCopia codicenpm install @nuxtjs/google-analytics
javascriptCopia codice// nuxt.config.js
export default {
  modules: [
    '@nuxtjs/google-analytics'
  ],
  googleAnalytics: {
    id: 'UA-XXXXXXX-X'
  }
}

12. Despliegue

Las aplicaciones Nuxt.js se pueden desplegar en varias plataformas como Vercel, Netlify o servidores tradicionales. Para un sitio estático:

shCopia codicenpm run generate

Sube el contenido del directorio dist a tu proveedor de hosting preferido.

Conclusión

Nuxt.js es una framework poderosa que simplifica el desarrollo de aplicaciones Vue.js proporcionando un entorno estructurado con soporte incorporado para renderizado del lado del servidor, generación de sitios estáticos y muchas otras características. Su arquitectura modular y su extenso ecosistema lo convierten en una excelente opción para construir aplicaciones web modernas.

Para más lectura y temas avanzados, puedes explorar la documentación oficial del framework. ¡Esperamos que esta guía de Nuxt.js te haya sido de ayuda!

Artículos relacionados

Los lenguajes de programación más populares en 2025

Codemotion
febrero 25, 2025

Apps macOS: Desde el Sandboxing hasta la Notarización, los Fundamentos

Javier
febrero 20, 2025

Como subir tus apps macOS a la AppStore Connect

Javier
febrero 20, 2025

Provisioning Profiles para apps macOS

Javier
febrero 20, 2025
Share on:facebooktwitterlinkedinreddit

Tags:Vue.js

Codemotion
Artículos escritos por el equipo de Codemotion. Noticias sobre tecnología, inspiración para devs, las últimas tendencias en desarrollo de software y mucho más.
John Smith, CTO @Veracode : “No dudes en diversificar y explorar áreas que a primera vista parezcan no estar relacionadas»
Artículo anterior
¿Somos prisioneros de los frameworks?
Próximo artículo

Footer

Discover

  • Events
  • Community
  • Partners
  • Become a partner
  • Hackathons

Magazine

  • Tech articles

Talent

  • Discover talent
  • Jobs

Companies

  • Discover companies

For Business

  • Codemotion for companies

About

  • About us
  • Become a contributor
  • Work with us
  • Contact us

Follow Us

© Copyright Codemotion srl Via Marsala, 29/H, 00185 Roma P.IVA 12392791005 | Privacy policy | Terms and conditions