Next.js 14 menjadi standar de‑facto untuk aplikasi React modern. Tutorial ini menuntun Anda step‑by‑step menginstal, mengkonfigurasi, menulis kode, serta menerapkan best practice agar proyek siap produksi pada Juni 2026.
1. Prasyarat dan Persiapan Lingkungan
Pastikan Anda telah menginstal versi Node.js LTS terbaru (v20.12 atau lebih tinggi) dan npm atau pnpm (kami rekomendasikan pnpm karena kecepatan instalasi). Verifikasi dengan:
node -v
pnpm -v
Jika belum terpasang, unduh dari nodejs.org dan ikuti panduan instalasi resmi.
2. Membuat Proyek Next.js 14 Baru
pnpm create next-app@latest my-next14-app --ts
cd my-next14-app
Perintah di atas membuat proyek dengan TypeScript, React 19, dan mengaktifkan fitur experimental app router secara default.
3. Struktur Direktori App Router
Folder app/ menggantikan pages/. Contoh struktur minimal:
app/
├─ layout.tsx # Layout global
├─ page.tsx # Home page
├─ about/
│ └─ page.tsx # Route /about
└─ api/
└─ hello/route.ts # API Route /api/hello
3.1 Membuat Layout Global
/* app/layout.tsx */
import './globals.css';
export const metadata = {
title: 'My Next.js 14 App',
description: 'Demo proyek dengan App Router & Server Components',
};
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
{children}
);
}
Layout ini dieksekusi di server, memungkinkan Anda meng‑inject font, theme, atau authentication provider tanpa membebani client.
4. Menggunakan Server Components
Server Components (SC) berjalan sepenuhnya di Node.js, tidak ter‑bundle ke client. Buat file app/components/WeatherSC.tsx:
/* app/components/WeatherSC.tsx */
import fetch from 'node-fetch';
export default async function WeatherSC({ city }: { city: string }) {
const res = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${process.env.OPENWEATHER_KEY}`);
const data = await res.json();
return (
Cuaca di {city}
Temperatur: {(data.main.temp - 273.15).toFixed(1)}°C
);
}
Karena ini Server Component, fetch dijalankan di server, tidak mengirim API key ke browser.
4.1 Memanggil SC di Page
/* app/page.tsx */
import WeatherSC from './components/WeatherSC';
export default function Home() {
return (
Selamat Datang di Next.js 14
{/* Server Component langsung di‑render */}
);
}
5. Menambahkan Client Component Interaktif
Jika butuh interaktivitas, gunakan 'use client' di atas file:
/* app/components/CounterClient.tsx */
'use client';
import { useState } from 'react';
export default function CounterClient() {
const [count, setCount] = useState(0);
return (
);
}
Pasang di halaman:
/* app/page.tsx (lanjutan) */
import CounterClient from './components/CounterClient';
// ... di dalam return
6. Konfigurasi ESLint, Prettier, dan TypeScript Strict Mode
Instal dependensi dev:
pnpm add -D eslint prettier eslint-config-prettier eslint-plugin-react eslint-plugin-react-hooks @typescript-eslint/parser @typescript-eslint/eslint-plugin
Berikut contoh .eslintrc.json yang disesuaikan untuk Next.js 14:
{
"extends": [
"next/core-web-vitals",
"plugin:@typescript-eslint/recommended",
"prettier"
],
"plugins": ["@typescript-eslint"],
"rules": {
"react/react-in-jsx-scope": "off",
"@typescript-eslint/no-unused-vars": ["warn", { "argsIgnorePattern": "^_" }]
}
}
Aktifkan strict": true pada tsconfig.json untuk catch error lebih awal.
7. Optimasi Performansi
- Image Optimization: gunakan
next/imagedenganloader: 'custom'jika CDN internal. - Edge Runtime: ubah route API menjadi
runtime: 'edge'untuk latensi < 10 ms pada Vercel Edge. - Streaming: manfaatkan
awaitdi Server Components untuk server‑side streaming (SSR) sehingga konten muncul secepat data tersedia.
7.1 Contoh API Edge
/* app/api/hello/route.ts */
import { NextResponse } from 'next/server';
export const runtime = 'edge';
export async function GET() {
return NextResponse.json({ message: 'Hello from Edge Runtime' });
}
8. Deployment ke Vercel (atau Railway/Netlify)
- Push repository ke GitHub.
- Buka Vercel dan pilih New Project.
- Hubungkan repo, pilih framework
Next.js, dan biarkan Vercel mendeteksinext.config.jssecara otomatis. - Tambahkan environment variable
OPENWEATHER_KEYpada Settings → Environment Variables. - Deploy! Vercel otomatis menjalankan
pnpm builddan menyajikan dengan CDN global.
9. Best Practice untuk Production
- Static Rendering untuk Halaman Publik: gunakan
export const revalidate = 3600;pada page yang dapat di‑cache. - Security Headers: aktifkan
next-secure-headersplugin.pnpm add next-secure-headers // next.config.js const { createSecureHeaders } = require('next-secure-headers'); module.exports = { async headers() { return [{ source: '/(.*)', headers: createSecureHeaders({ contentSecurityPolicy: { directives: { defaultSrc: "'self'", scriptSrc: "'self' 'unsafe-eval'", }, }, }), }]; }, }; - Monitoring: integrasikan dengan Vercel Analytics atau Sentry (
pnpm add @sentry/nextjs). - Testing: gunakan
jest+@testing-library/reactuntuk unit & integration test pada Client Components.
10. Studi Kasus: Migrasi Proyek Legacy React ke Next.js 14
Sebuah tim fintech mempunyai aplikasi React 17 yang dibundel via CRA. Mereka ingin meningkatkan SEO dan mengurangi waktu muat halaman utama. Proses migrasi:
- Ekspor folder
src/componentskeapp/componentstanpa perubahan. - Ubah semua
useEffect(() => { fetch(... ) }, [])menjadi Server Components bila data tidak memerlukan interaksi pengguna. - Tambahkan
metadatapada setiap route untuk meta tag Open Graph, meningkatkan click‑through di mesin pencari. - Deploy ke Vercel, hasilnya: LCP turun dari 3.8 s menjadi 1.2 s, Core Web Vitals berada di green.
Keberhasilan migrasi ini menggarisbawahi nilai Server Components dalam mengurangi bundle size dan meningkatkan SEO.
Next.js 14 membawa paradigma baru dengan App Router dan Server Components yang secara signifikan memperbaiki performa, keamanan, dan SEO. Dengan mengikuti tutorial step‑by‑step ini, Anda dapat membangun aplikasi React modern, mengoptimalkannya untuk produksi, dan menyebarkannya ke CDN global hanya dalam beberapa menit. Terapkan best practice yang disebutkan, pantau metrics secara terus‑menerus, serta iterasi berdasarkan feedback pengguna untuk menjaga kualitas aplikasi tetap tinggi dalam era Web 3.0.
Panduan lengkap setup Next.js 14 dengan App Router, Server Components, optimasi performa, dan deployment ke Vercel. Tutorial step‑by‑step untuk developer Web Development 2026.
Programming,Software Engineering,Web Development
#Programming #SoftwareEngineering #WebDev #Tech #Coding
0 Komentar