Section 1: Lab: เริ่มต้น Next.js 16
- Next.js ต่างจาก React ที่ใช้ Vite อย่างไร และเหมาะกับงานแบบไหน
- สร้างโปรเจกต์ด้วย create-next-app และค่าเริ่มต้น TypeScript, Tailwind CSS, ESLint และ App Router
- โครงสร้างโฟลเดอร์ app, public และไฟล์ next.config.ts
- รัน next dev ด้วย Turbopack และอ่าน Error Overlay
- Lab: หน้าแรกของระบบจัดการสินค้า
Section 2: Lab: Routing และ Layout ด้วย App Router
- สร้างหน้าด้วยโฟลเดอร์และไฟล์ page.tsx รวมถึง Nested Route
- Dynamic Route เช่น app/products/[id] และการอ่าน params
- layout.tsx สำหรับ Header และ Sidebar ที่ใช้ร่วมกัน
- ไฟล์พิเศษ loading.tsx, error.tsx และ not-found.tsx
- Lab: หน้ารายการสินค้าและหน้ารายละเอียดสินค้า
Section 3: Server Component กับ Client Component
- ทุก Component เป็น Server Component โดยปริยาย และดึงข้อมูลด้วย async/await ได้ตรง ๆ
- ใช้ 'use client' เมื่อต้องการ State, Event หรือ Hook
- ส่ง Props จาก Server ไป Client และแยกส่วนโต้ตอบให้เล็กที่สุด
- Link, useRouter และ redirect สำหรับการนำทาง
- Lab: ช่องค้นหาและตัวกรองสินค้าฝั่ง Client
Section 4: Lab: UI ด้วย Tailwind CSS 4 และ shadcn/ui
- แนวคิด Utility-First และการตั้งค่า Theme ใน Tailwind CSS 4
- Responsive แบบ Mobile-first และ Dark Mode
- ติดตั้ง shadcn/ui และเพิ่ม Button, Card, Table, Dialog และ Input
- ปรับแต่ง Component ที่คัดลอกมาไว้ในโปรเจกต์ของเราเอง
- Lab: Layout หน้า Dashboard พร้อม Sidebar และตารางสินค้า
Section 5: Metadata, รูปภาพ และฟอนต์
- Metadata API และ generateMetadata สำหรับ SEO รายหน้า
- next/image ปรับขนาดและโหลดรูปภาพอย่างเหมาะสม
- next/font โหลดฟอนต์ภาษาไทยและอังกฤษโดยไม่กระตุก
- ภาพรวมหน้า Static กับหน้า Dynamic และผลต่อความเร็ว
- Lab: ใส่ชื่อหน้า คำอธิบาย และรูปสินค้าให้ครบ