0Pricing
Frontend Academy · Lezione

Moduli Nuxt: immagini, autenticazione e i18n

Installare e configurare @nuxt/image per immagini ottimizzate, @nuxtjs/auth-next per l’autenticazione e @nuxtjs/i18n per l’internazionalizzazione

Moduli Nuxt: immagini, autenticazione e i18n è una lezione Frontend Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Frontend Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Frontend Academy include 4 lezioni in totale.

Che cosa sono i moduli Nuxt?

I moduli sono il meccanismo ufficiale di estensione di Nuxt. Si installano in nuxt.config.ts e si collegano al processo di build, al runtime e al server di sviluppo. La maggior parte delle funzionalità dell'ecosistema è fornita dai moduli.

Installazione di un modulo

Installi il modulo con npm, quindi lo aggiunga a modules in nuxt.config.ts.

// nuxt.config.ts
export default defineNuxtConfig({
  modules: [
    '@nuxt/image',
    '@sidebase/nuxt-auth',
    '@nuxtjs/i18n'
  ]
});

@nuxt/image

Sostituisce <img> con <NuxtImg> ottimizzato: formato automatico (WebP/AVIF), srcset responsive, caricamento lazy e integrazione con CDN.

<template>
  <NuxtImg
    src="/photos/sunset.jpg"
    alt="Sunset"
    width="800"
    height="600"
    format="webp"
    loading="lazy"
    sizes="sm:100vw md:50vw lg:800px"
  />
</template>

NuxtPicture per l'art direction

<NuxtPicture> genera un elemento <picture> con più tag <source> per l'art direction.

<NuxtPicture src="/hero.jpg" alt="" :imgAttrs="{ width: 1200, height: 600 }" />

Configurazione del provider delle immagini

Configuri un provider CDN (Cloudinary, imgix, Vercel ecc.) in modo che tutte le immagini passino attraverso di esso.

export default defineNuxtConfig({
  modules: ['@nuxt/image'],
  image: {
    provider: 'cloudinary',
    cloudinary: { baseURL: 'https://res.cloudinary.com/yourname/image/fetch/' }
  }
});

@sidebase/nuxt-auth (autenticazione)

Modulo di autenticazione con diversi provider: OAuth compatibile con NextAuth, credenziali locali e flussi personalizzati.

// nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@sidebase/nuxt-auth'],
  auth: {
    baseURL: process.env.AUTH_ORIGIN,
    provider: { type: 'authjs' }
  }
});

Utilizzo dell'autenticazione nelle pagine

Il composable useAuth() espone la sessione, lo stato e signIn/signOut.

<script setup>
const { data: session, status, signIn, signOut } = useAuth();
</script>

<template>
  <button v-if="status === 'unauthenticated'" @click="signIn('github')">
    Sign in with GitHub
  </button>
  <div v-else>
    Welcome, {{ session.user.name }}
    <button @click="signOut">Sign out</button>
  </div>
</template>

Protezione delle route con il middleware

Utilizzi il middleware di autenticazione in una pagina per richiedere l'autenticazione.

<script setup>
definePageMeta({ middleware: 'auth' });
</script>

@nuxtjs/i18n (internazionalizzazione)

Il modulo i18n ufficiale supporta più lingue, route con prefisso locale, file di traduzione caricati lazy e hreflang ottimizzato per la SEO.

export default defineNuxtConfig({
  modules: ['@nuxtjs/i18n'],
  i18n: {
    locales: [
      { code: 'en', file: 'en.json' },
      { code: 'tr', file: 'tr.json' }
    ],
    defaultLocale: 'en',
    lazy: true,
    langDir: 'locales/'
  }
});

Traduzione nei componenti

Utilizzi $t nei template oppure useI18n in setup.

<script setup>
const { t, locale } = useI18n();
</script>

<template>
  <h1>{{ $t('welcome') }}</h1>
  <p>{{ t('greeting', { name: 'Alice' }) }}</p>
  <button @click="locale = locale === 'en' ? 'tr' : 'en'">
    {{ $t('switch_lang') }}
  </button>
</template>

Route con prefisso locale

Gli URL diventano /en/about, /tr/about. Utilizzi localePath('/about') per generare link con il prefisso corretto.

<NuxtLink :to="localePath('/profile')">{{ $t('profile') }}</NuxtLink>

Altri moduli popolari

@pinia/nuxt (gestione dello stato), @vueuse/nuxt (oltre 200 composable), @nuxtjs/tailwindcss (configurazione di Tailwind), @nuxtjs/color-mode (modalità scura), @nuxt/content (CMS basato sui file).

Scrittura di un modulo personalizzato

Per le funzionalità interne a un monorepo, scriva un modulo che si colleghi al ciclo di vita di Nuxt. I moduli sono potenti: possono registrare componenti, runtime config, route del server e passaggi di build.

Verifica rapida

Quale modulo Nuxt 3 fornisce un caricamento ottimizzato delle immagini con WebP/AVIF automatico e srcset responsive?

Riepilogo: moduli Nuxt

I moduli estendono Nuxt e si installano tramite l'array modules in nuxt.config.ts. @nuxt/image per immagini ottimizzate (formato automatico, srcset, lazy loading). @sidebase/nuxt-auth (o nuxt-auth) per l'autenticazione. @nuxtjs/i18n per le traduzioni e le route con prefisso locale. Inoltre: @pinia/nuxt, @vueuse/nuxt, @nuxtjs/tailwindcss e @nuxt/content. Scriva moduli personalizzati per il riutilizzo interno.

Domande Frequenti

La lezione «Moduli Nuxt: immagini, autenticazione e i18n» è gratuita?

Sì — il testo completo di «Moduli Nuxt: immagini, autenticazione e i18n» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Frontend Academy, passa a CoddyKit PRO. Il corso Frontend Academy include 4 lezioni in totale.

Cosa imparerò in «Moduli Nuxt: immagini, autenticazione e i18n»?

Installare e configurare @nuxt/image per immagini ottimizzate, @nuxtjs/auth-next per l’autenticazione e @nuxtjs/i18n per l’internazionalizzazione Eserciti Frontend Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Frontend Academy?

Non è richiesta alcuna esperienza precedente. Frontend Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Moduli Nuxt: immagini, autenticazione e i18n»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Frontend Academy?

Sì. Ogni lezione Frontend Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Routing basato sui file e auto-import
  2. useFetch e useAsyncData
  3. Moduli Nuxt: immagini, autenticazione e i18n
  4. Deployment: statico e SSR
← Torna a Frontend Academy