Frontend Academy · Lektion

Nuxt-Module: Image, Auth und i18n

Installieren und konfigurieren Sie @nuxt/image für optimierte Bilder, @nuxtjs/auth-next für Authentifizierung und @nuxtjs/i18n für Internationalisierung.

Lektion 3 von 415 Schritte

Nuxt-Module: Image, Auth und i18n ist eine kostenlose Frontend Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Frontend Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Frontend Academy-Kurs umfasst insgesamt 4 Lektionen.

Was sind Nuxt-Module?

Module sind der offizielle Erweiterungsmechanismus für Nuxt. Sie werden in nuxt.config.ts installiert und greifen in den Build, die Laufzeit und den Entwicklungsserver ein. Die meisten Funktionen des Ökosystems sind Module.

Ein Modul installieren

Installieren Sie das Modul mit npm install und fügen Sie es anschließend in nuxt.config.ts zum modules-Array hinzu.

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

@nuxt/image

Ersetzt <img> durch optimiertes <NuxtImg> — automatische Formatauswahl (WebP/AVIF), responsives srcset, Lazy Loading und CDN-Integration.

<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 für Art Direction

<NuxtPicture> erzeugt ein <picture>-Element mit mehreren <source>-Tags für Art Direction.

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

Konfiguration des Bild-Providers

Konfigurieren Sie einen CDN-Provider (Cloudinary, imgix, Vercel usw.), damit alle Bilder über ihn ausgeliefert werden.

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

@sidebase/nuxt-auth (Authentifizierung)

Authentifizierungsmodul mit mehreren Providern: mit NextAuth kompatibles OAuth, lokale Zugangsdaten und benutzerdefinierte Abläufe.

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

Authentifizierung in Seiten verwenden

Das Composable useAuth() stellt Sitzung, Status und signIn/signOut bereit.

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

Routen mit Middleware schützen

Verwenden Sie die Auth-Middleware auf einer Seite, um eine Authentifizierung vorauszusetzen.

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

@nuxtjs/i18n (Internationalisierung)

Das offizielle i18n-Modul unterstützt mehrere Sprachen, Routen mit Locale-Präfix, verzögert geladene Übersetzungsdateien und SEO-freundliche hreflang-Attribute.

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

In Komponenten übersetzen

Verwenden Sie $t in Templates oder 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>

Routen mit Locale-Präfix

URLs werden zu /en/about und /tr/about. Verwenden Sie localePath('/about'), um Links mit dem korrekten Präfix zu erzeugen.

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

Weitere beliebte Module

@pinia/nuxt (State-Management), @vueuse/nuxt (mehr als 200 Composables), @nuxtjs/tailwindcss (Tailwind-Einrichtung), @nuxtjs/color-mode (Dark Mode) und @nuxt/content (dateibasiertes CMS).

Ein benutzerdefiniertes Modul schreiben

Für interne Funktionen in einem Monorepo schreiben Sie ein Modul, das sich in den Nuxt-Lebenszyklus einklinkt. Module sind leistungsstark: Sie können Komponenten, Runtime-Konfiguration, Server-Routen und Build-Schritte registrieren.

Kurzer Check

Welches Nuxt-3-Modul stellt optimiertes Laden von Bildern mit automatischer WebP/AVIF-Unterstützung und responsivem srcset bereit?

Zusammenfassung: Nuxt-Module

Module erweitern Nuxt und werden über das modules-Array in nuxt.config.ts installiert. @nuxt/image ist für optimierte Bilder zuständig (automatische Formatauswahl, srcset, Lazy Loading). @sidebase/nuxt-auth (oder nuxt-auth) dient der Authentifizierung. @nuxtjs/i18n unterstützt Übersetzungen und Routen mit Locale-Präfix. Außerdem gibt es @pinia/nuxt, @vueuse/nuxt, @nuxtjs/tailwindcss und @nuxt/content. Schreiben Sie benutzerdefinierte Module für die interne Wiederverwendung.

Kostenlos starten

Lerne HTML mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
41
Lektionen
163

Häufig gestellte Fragen

Ist die Lektion „Nuxt-Module: Image, Auth und i18n“ kostenlos?

Ja — der vollständige Text von „Nuxt-Module: Image, Auth und i18n“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Frontend Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Frontend Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Nuxt-Module: Image, Auth und i18n“?

Installieren und konfigurieren Sie @nuxt/image für optimierte Bilder, @nuxtjs/auth-next für Authentifizierung und @nuxtjs/i18n für Internationalisierung. Du übst Frontend Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Frontend Academy zu starten?

Keine Vorkenntnisse erforderlich. Frontend Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Nuxt-Module: Image, Auth und i18n“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Frontend Academy-Lektion Code schreiben und ausführen?

Ja. Jede Frontend Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Dateibasiertes Routing und automatische Imports
  2. useFetch und useAsyncData
  3. Nuxt-Module: Image, Auth und i18n
  4. Deployment: Statisch vs. SSR
← Zurück zu Frontend Academy