0Pricing
Frontend Academy · Pelajaran

Modul Nuxt: Gambar, Autentikasi, i18n

Instal dan konfigurasikan @nuxt/image untuk gambar yang dioptimalkan, @nuxtjs/auth-next untuk autentikasi, dan @nuxtjs/i18n untuk pelokalan.

Modul Nuxt: Gambar, Autentikasi, i18n adalah pelajaran Frontend Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Frontend Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Frontend Academy mencakup 4 pelajaran total.

Apa Itu Modul Nuxt?

Modul adalah mekanisme ekstensi resmi untuk Nuxt. Modul dipasang di nuxt.config.ts dan terhubung ke proses build, runtime, serta server pengembangan. Sebagian besar fitur ekosistem tersedia sebagai modul.

Memasang Modul

Pasang modul dengan npm install, lalu tambahkan ke modules di nuxt.config.ts.

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

@nuxt/image

Menggantikan <img> dengan <NuxtImg> yang dioptimalkan — format otomatis (WebP/AVIF), srcset responsif, pemuatan malas, dan integrasi 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 untuk Pengarahan Visual

<NuxtPicture> menghasilkan elemen <picture> dengan beberapa tag <source> untuk pengarahan visual.

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

Konfigurasi Penyedia Gambar

Konfigurasikan penyedia CDN (Cloudinary, imgix, Vercel, dan lainnya) agar semua gambar diarahkan melaluinya.

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

@sidebase/nuxt-auth (Autentikasi)

Modul autentikasi dengan beberapa penyedia: OAuth yang kompatibel dengan NextAuth, kredensial lokal, dan alur khusus.

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

Menggunakan Auth di Halaman

Komposable useAuth() menyediakan sesi, status, serta 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>

Melindungi Rute dengan Middleware

Gunakan middleware autentikasi pada halaman untuk mewajibkan autentikasi.

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

@nuxtjs/i18n (Internasionalisasi)

Modul i18n resmi mendukung berbagai bahasa, rute dengan awalan locale, berkas terjemahan yang dimuat secara malas, dan hreflang yang ramah 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/'
  }
});

Menerjemahkan di Komponen

Gunakan $t dalam templat atau useI18n dalam 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>

Rute dengan Awalan Locale

URL menjadi /en/about, /tr/about. Gunakan localePath('/about') untuk membuat tautan dengan awalan yang benar.

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

Modul Populer Lainnya

@pinia/nuxt (pengelolaan status), @vueuse/nuxt (lebih dari 200 komposable), @nuxtjs/tailwindcss (penyiapan Tailwind), @nuxtjs/color-mode (mode gelap), @nuxt/content (CMS berbasis berkas).

Menulis Modul Khusus

Untuk fungsi monorepo internal, tulislah modul yang terhubung ke siklus hidup Nuxt. Modul sangat kuat: dapat mendaftarkan komponen, konfigurasi runtime, rute server, dan langkah build.

Pemeriksaan Singkat

Modul Nuxt 3 mana yang menyediakan pemuatan gambar yang dioptimalkan dengan WebP/AVIF otomatis dan srcset responsif?

Ringkasan: Modul Nuxt

Modul memperluas Nuxt — dipasang melalui larik modules di nuxt.config.ts. @nuxt/image untuk gambar yang dioptimalkan (format otomatis, srcset, pemuatan malas). @sidebase/nuxt-auth (atau nuxt-auth) untuk autentikasi. @nuxtjs/i18n untuk terjemahan dan rute dengan awalan locale. Selain itu: @pinia/nuxt, @vueuse/nuxt, @nuxtjs/tailwindcss, @nuxt/content. Tulislah modul khusus untuk penggunaan ulang internal.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Modul Nuxt: Gambar, Autentikasi, i18n” gratis?

Ya — teks lengkap “Modul Nuxt: Gambar, Autentikasi, i18n” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Frontend Academy, upgrade ke CoddyKit PRO. Kursus Frontend Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Modul Nuxt: Gambar, Autentikasi, i18n”?

Instal dan konfigurasikan @nuxt/image untuk gambar yang dioptimalkan, @nuxtjs/auth-next untuk autentikasi, dan @nuxtjs/i18n untuk pelokalan. Kamu berlatih Frontend Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Frontend Academy?

Tidak diperlukan pengalaman sebelumnya. Frontend Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Modul Nuxt: Gambar, Autentikasi, i18n” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Frontend Academy ini?

Ya. Setiap pelajaran Frontend Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Perutean Berbasis File dan Impor Otomatis
  2. useFetch dan useAsyncData
  3. Modul Nuxt: Gambar, Autentikasi, i18n
  4. Deployment: Statis vs SSR
← Kembali ke Frontend Academy