Lewati ke konten utama

๐ŸŒ Nuxt.js & Server-Side Rendering (SSR) untuk Vue.js

Nuxt.js adalah framework berbasis Vue untuk membangun aplikasi web modern dengan fitur seperti Server-Side Rendering (SSR), Static Site Generation (SSG), dan File-Based Routing. Nuxt menyederhanakan pengembangan Vue untuk proyek skala menengah hingga besar.


๐Ÿš€ 1. Kelebihan Nuxt.jsโ€‹

  • โœ… SEO-friendly (berkat SSR/SSG)
  • โœ… File-based routing (tanpa config routing manual)
  • โœ… Zero config setup
  • โœ… Built-in middleware & auth
  • โœ… Dukungan TypeScript dan Tailwind

โš™๏ธ 2. Instalasi Proyek Nuxtโ€‹

npx nuxi init nuxt-app
cd nuxt-app
npm install
npm run dev

nuxi adalah CLI terbaru untuk Nuxt 3.


๐Ÿ“ 3. Struktur Direktori Nuxtโ€‹

nuxt-app/
โ”œโ”€โ”€ pages/ # โฌ…๏ธ Halaman otomatis jadi route
โ”‚ โ”œโ”€โ”€ index.vue # โฌ…๏ธ /
โ”‚ โ””โ”€โ”€ about.vue # โฌ…๏ธ /about
โ”œโ”€โ”€ components/ # Komponen Vue biasa
โ”œโ”€โ”€ layouts/ # Layout utama dan kustom
โ”œโ”€โ”€ plugins/ # Plugin seperti Axios, VueUse
โ”œโ”€โ”€ middleware/ # Auth dan guard route
โ”œโ”€โ”€ nuxt.config.ts # Konfigurasi Nuxt
โ””โ”€โ”€ app.vue # Root App (opsional)

๐Ÿ“„ 4. Routing Otomatisโ€‹

File: pages/index.vue

<template>
<h1>Beranda</h1>
</template>

File: pages/about.vue

<template>
<h1>Tentang Kami</h1>
</template>

Halaman otomatis tersedia di URL / dan /about.


๐Ÿ“ฆ 5. SSR, SSG, dan SPAโ€‹

ModeKeterangan
SSRServer-rendered per request. SEO-friendly & real-time
SSGStatic site. Build sekali โ†’ cepat & ringan
SPASeperti Vue biasa, tanpa SSR

Konfigurasi di nuxt.config.ts

export default defineNuxtConfig({
ssr: true, // false = SPA, true = SSR/SSG
});

๐Ÿ“ค 6. Fetching Data (useFetch)โ€‹

<script setup>
const { data, error } = await useFetch('/api/posts');
</script>

<template>
<div v-if="data">
<h2>Artikel:</h2>
<ul>
<li v-for="post in data" :key="post.id">{{ post.title }}</li>
</ul>
</div>
</template>

๐Ÿ› ๏ธ 7. Konfigurasi Nuxt (nuxt.config.ts)โ€‹

export default defineNuxtConfig({
modules: ['@nuxtjs/tailwindcss', '@pinia/nuxt'],
app: {
head: {
title: 'Nuxt SSR Vue App',
meta: [
{ name: 'description', content: 'Website menggunakan Nuxt.js dan SSR' }
]
}
}
});

๐Ÿงช 8. Deployment SSRโ€‹

Nuxt SSR bisa dideploy ke:

  • Node.js Server (Express, Koa)

  • Vercel (SSR mode)

  • Netlify (untuk SSG mode)

  • VPS / Docker

Untuk build SSR:

npm run build
npm run start

๐ŸŽจ 9. Tailwind + Pinia + TypeScriptโ€‹

Semua bisa digabung dengan mudah:

npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init
npm install pinia

Pinia otomatis terhubung jika menggunakan @pinia/nuxt.