Panduan Lengkap Setup Next.js 14 dengan App Router, React Server Components, dan Deploy ke Vercel


Next.js 14 terus menjadi pilihan utama untuk pengembangan web modern. Tutorial ini membimbing Anda langkah demi langkah mulai dari instalasi, konfigurasi, hingga implementasi fitur-fitur terbaru seperti App Router dan React Server Components, serta tips best practice dan deployment ke Vercel.

1. Prasyarat dan Persiapan Lingkungan

Sebelum memulai, pastikan Anda memiliki:

  • Node.js v20.x atau lebih baru (unduh di nodejs.org)
  • npm v10 atau Yarn (pilihan pribadi)
  • Git untuk version control
  • Akun Vercel (opsional untuk deployment)

2. Membuat Project Next.js 14 Baru

  1. Jalankan perintah berikut untuk membuat aplikasi baru dengan template app-router:
    npx create-next-app@latest my-next14-app --experimental-app-router
    Perintah ini menginisialisasi proyek dengan struktur app/ yang baru diperkenalkan di Next.js 13 dan disempurnakan di versi 14.
  2. Masuk ke direktori project:
    cd my-next14-app
  3. Instal dependensi tambahan untuk TypeScript (opsional namun direkomendasikan):
    npm install -D typescript @types/react @types/node
    Kemudian jalankan npm run dev untuk menghasilkan tsconfig.json secara otomatis.

3. Memahami Struktur App Router

Folder app/ menggantikan pages/. Setiap folder di dalam app/ mewakili route, dan file page.tsx atau page.jsx menjadi entry point.

app/
├─ layout.tsx      // Shared layout
├─ page.tsx        // Home route (/)
├─ dashboard/
│  └─ page.tsx    // /dashboard
└─ api/
   └─ hello/route.ts   // API route example

4. Membuat Layout Global dengan Server Components

  1. Buat file app/layout.tsx:
    import './globals.css';
    
    export const metadata = {
      title: 'Next.js 14 Demo',
      description: 'Demo aplikasi dengan App Router dan Server Components',
    };
    
    export default function RootLayout({ children }: { children: React.ReactNode }) {
      return (
        
          {children}
        
      );
    }
    

    File ini otomatis dijalankan di server, sehingga Anda dapat mengakses API atau database tanpa mengirimkan kode ke client.

5. Menambahkan Halaman Dashboard dengan Data Fetching Server Side

  1. Buat folder app/dashboard dan file page.tsx:
    import Image from 'next/image';
    
    // Server Component – fetch data langsung di server
    async function getStats() {
      const res = await fetch('https://api.example.com/stats', { cache: 'no-store' });
      if (!res.ok) throw new Error('Failed to fetch stats');
      return res.json();
    }
    
    export default async function DashboardPage() {
      const stats = await getStats();
      return (
        

    Dashboard

    Total Users: {stats.users}

    Active Sessions: {stats.sessions}

    Chart
    ); }

    Karena file ini merupakan Server Component, panggilan fetch tidak dibundel ke client, meningkatkan performa dan keamanan.

6. Menggunakan Client Component untuk Interaktivitas

  1. Buat file app/dashboard/RefreshButton.tsx:
    'use client';
    import { useRouter } from 'next/navigation';
    
    export default function RefreshButton() {
      const router = useRouter();
      return (
        
      );
    }
    

    Dengan menambahkan 'use client' di atas, komponen ini dijalankan di browser, memungkinkan penggunaan hook React seperti useState atau useEffect.

  2. Import di DashboardPage dan sematkan:
    import RefreshButton from './RefreshButton';
    ...
          
    ...
    

7. Konfigurasi TypeScript, ESLint, dan Prettier

  1. Instal paket linting:
    npm install -D eslint prettier eslint-config-next eslint-plugin-react-hooks
  2. Buat .eslintrc.json:
    {
      "extends": ["next/core-web-vitals", "plugin:react-hooks/recommended"],
      "rules": {
        "react/react-in-jsx-scope": "off"
      }
    }
    
  3. Tambahkan .prettierrc sederhana:
    {
      "singleQuote": true,
      "trailingComma": "all"
    }
    
  4. Update package.json scripts:
    "lint": "next lint",
    "format": "prettier --write ."
    

8. Mengamankan API Routes dengan Middleware

Next.js 14 mendukung middleware di folder middleware.ts. Contoh autentikasi JWT:

import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';

export function middleware(request: NextRequest) {
  const token = request.cookies.get('auth');
  if (!token) return NextResponse.redirect(new URL('/login', request.url));
  // Validasi token (simplified)
  try {
    // verify(token) // implement dengan library jsonwebtoken
    return NextResponse.next();
  } catch {
    return NextResponse.redirect(new URL('/login', request.url));
  }
}

export const config = {
  matcher: ['/dashboard/:path*', '/api/protected/:path*']
};

9. Optimasi Performance dengan Edge Runtime

Untuk mengurangi latency, ubah API route menjadi Edge Function:

// app/api/hello/route.ts
export const runtime = 'edge';

export async function GET() {
  return new Response(JSON.stringify({ message: 'Hello from Edge!' }), {
    headers: { 'Content-Type': 'application/json' }
  });
}

Edge runtime dijalankan di CDN terdekat, ideal untuk respon cepat.

10. Deploy ke Vercel

  1. Push repository ke GitHub.
  2. Buka vercel.com, klik New Project, pilih repo Anda.
  3. Vercel secara otomatis mendeteksi Next.js, pilih Framework Preset: Next.js.
  4. Jika menggunakan variabel lingkungan (mis. JWT secret), tambahkan di Settings → Environment Variables.
  5. Deploy! Vercel akan memberikan URL preview dan production.

11. Best Practice untuk Next.js 14

  • Gunakan Server Components untuk data‑intensive UI. Ini mengurangi bundle size dan meningkatkan SEO.
  • Manfaatkan Incremental Static Regeneration (ISR) bila data tidak berubah tiap request. Contoh:
    export const revalidate = 60; // seconds
  • Selalu set cache: 'no-store' untuk data sensitif.
  • Jaga ukuran gambar dengan next/image dan loader custom CDN.
  • Audit bundle dengan next build dan next lint sebelum release.

12. Debugging & Monitoring

Gunakan built‑in next dev untuk hot‑reload. Untuk produksi, integrasikan dengan Sentry atau LogRocket melalui middleware error handling.


Dengan mengikuti langkah‑langkah di atas, Anda kini memiliki aplikasi Next.js 14 yang modern, aman, dan siap produksi. Manfaatkan App Router, React Server Components, dan Edge Runtime untuk performa maksimal, serta praktik CI/CD melalui Vercel untuk deployment tanpa friction. Terus eksplorasi fitur baru seperti Turbopack dan Middleware API untuk menjaga aplikasi Anda tetap di garis depan teknologi web.
Tutorial lengkap setup Next.js 14 dengan App Router, React Server Components, middleware, Edge Runtime, dan deployment ke Vercel. Langkah demi langkah, contoh kode, dan best practice untuk developer web modern.

Programming,Software Engineering,Web Development

#Programming #SoftwareEngineering #WebDev #Tech #Coding

Posting Komentar

0 Komentar