Panduan lengkap untuk pengajar mengendalikan sesi React — tanpa mengajar React syntax. Ajar pelajar cara menggunakan AI untuk membina aplikasi React.
Modul ini adalah pengenalan kepada React melalui Vibe Coding. Pelajar tidak perlu belajar React syntax. Sebaliknya, mereka akan belajar cara menyuruh AI membina komponen React, mengurus state, dan menyambungkan app ke database.
Falsafah modul ini: "React adalah library JavaScript paling popular. Dengan Vibe Coding, anda tak perlu hafal syntax — anda cuma perlu tahu nak suruh AI bina APA."
Falsafah Utama: Pelajar TIDAK perlu mahir JavaScript atau React. Mereka hanya perlu tahu APA yang mereka nak bina, dan AI akan uruskan HOW. Tugas pengajar adalah untuk mengajar mereka cara berkomunikasi dengan AI dengan berkesan.
Terangkan pendekatan modul ini. Gunakan analogi mudah:
Analogi: React macam bahasa asing. Biasanya kena ambil kursus berbulan-bulan untuk fasih. Tapi dengan AI, anda ada "penterjemah peribadi" — anda cuma perlu tahu nak cakap APA, bukan CARA nak sebut. AI akan tulis kod React untuk anda. Anda cuma perlu faham apa yang AI hasilkan dan tweak sikit-sikit.
Tunjukkan cara minta AI menerangkan konsep React dalam Bahasa Melayu yang mudah. Demo langsung:
Bincang hasilnya dengan pelajar. Tanya mereka: "Apa yang anda faham dari penerangan AI tadi?" Ini membina keyakinan mereka.
Demo langsung yang paling penting. Tunjukkan pelajar cara setup projek React dari kosong menggunakan AI.
Rujuk Modul Pelajar Langkah 1-3 untuk skrip penuh.
Demo lanjutan — bina dashboard card dengan props, state, dan styling. Tunjukkan AI boleh buat komponen kompleks.
Rujuk Modul Pelajar Langkah 4 untuk skrip penuh.
Pelajar menjalankan 5 latihan secara individu atau berpasangan:
Demo ini menunjukkan bahawa setup projek React yang kompleks boleh dilakukan dengan hanya bertanya AI. Pelajar akan nampak bahawa mereka tak perlu hafal command — cuma perlu tahu nak tanya apa.
AI akan beri arahan seperti:
Tip Pengajar: Semasa demo, minta pelajar perhatikan bagaimana anda menulis prompt — bukan kod React yang dihasilkan. Tunjukkan struktur prompt yang baik: (1) Konteks, (2) Apa nak dibina, (3) Detail spesifik, (4) Format output.
Demo ini menunjukkan kuasa React sebenar — komponen dynamic yang boleh display data berbeza berdasarkan props dan state.
Key Takeaway: Dalam masa 3 prompt sahaja (5 minit menaip), AI boleh hasilkan satu halaman dashboard yang functional dengan props, state, dan responsive grid. Bandingkan dengan menulis manually yang ambil masa berjam-jam. Inilah kuasa Vibe Coding + React.
| Tahap Pelajar | Cabaran | Pendekatan |
|---|---|---|
| Tak pernah guna terminal | Npm command, Vite setup | Beri arahan langkah demi langkah. Suruh mereka copy-paste command terus |
| JavaScript basic sahaja | Takut dengan JSX | Jelaskan JSX = "HTML dalam JavaScript". AI akan handle semua JSX |
| Dah pernah guna framework lain | Nak faham React betul-betul | Galakkan mereka explore AI-generated code. Tanya AI "kenapa guna cara ni?" |
| Pelajar cepat | Mudah bosan | Beri cabaran tambahan: tambah animation, guna API betul, buat dark mode toggle |
Critical Reminder: Modul ini adalah tentang menggunakan AI, bukan tentang React. Jika pelajar boleh hasilkan React app functional tanpa belajar React syntax, itu adalah kejayaan. React hanyalah "medium" — AI adalah "tools".
Setiap pelajar akan melalui journey ini sepanjang sesi. Gunakan ini untuk tracking progress:
Guna prompt AI untuk setup projek. Tak perlu hafal command — AI akan beri arahan langkah demi langkah.
Minta AI explain apa itu React components dengan analogi. Faham konsep tanpa baca dokumentasi tebal.
Guna prompt untuk hasilkan Card, Button, Navbar. Copy-paste kod ke App.jsx. Lihat hasil di browser.
Minta AI explain props vs state. Kemudian suruh AI tambah props dan state ke komponen sedia ada.
Install React Router dan setup 2-3 pages. Navigation antara pages tanpa reload.
Sambung React app ke Supabase database. Fetch data dan display dalam komponen.
Build React app untuk production dan deploy ke Cloudflare Pages.
Masalah: Node.js tak diinstal, atau terminal tak guna folder projek yang betul.
✅ Penyelesaian: Check Node.js dengan node --version. Install dari nodejs.org. Pastikan terminal di folder projek (cd ke folder betul).
Masalah: AI generate kod JSX tapi pelajar paste dalam fail .js (bukan .jsx). React tak recognise JSX dalam .js.
✅ Penyelesaian: Pastikan fail bernama .jsx (contoh: App.jsx, Card.jsx). Kalau guna .js biasa, React/Vite mungkin tak process JSX. Ajar pelajar guna .jsx extension.
Masalah: Pelajar lupa import component dalam App.jsx. Atau salah path import.
✅ Penyelesaian: Check import statement. Pastikan nama fail dan path betul. Guna auto-import dari VS Code — start taip nama component, VS Code akan suggest import. Ajar pelajar untuk perhatikan error di console.
Masalah: Tailwind CSS tak dikonfigurasi dengan betul. Atau lupa tambah directives dalam CSS file.
✅ Penyelesaian: Pastikan tailwind.config.js wujud dan index.css ada tiga baris: @tailwind base; @tailwind components; @tailwind utilities;. Kalau tak sure, minta AI setupkan semula.
Masalah: Lupa bungkus app dalam BrowserRouter, atau route path tak konsisten.
✅ Penyelesaian: Check main.jsx — pastikan ada <BrowserRouter>. Check route paths — guna / untuk home, /about untuk about page. Copy error ke AI minta bantuan.
Masalah: CORS policy block, atau API key salah, atau query tak betul.
✅ Penyelesaian: Check console untuk error. Pastikan Supabase URL dan anon key betul (dari dashboard Supabase). Check CORS settings di Supabase dashboard. Guna AI untuk debug: paste error dan minta bantuan.
Masalah: Ada dependency yang tak di-install atau version conflict.
✅ Penyelesaian: Check package.json — pastikan semua dependency ada. Jalankan npm install. Kalau still error, delete node_modules dan package-lock.json, then npm install semula. Copy error ke AI.
Masalah: Build output directory salah, atau base path tak set untuk routing.
✅ Penyelesaian: Untuk React Router di Cloudflare Pages, set base: "/" dalam vite.config.js. Untuk subfolder, guna base: "/repo-name/". Build output directory = dist. Juga perlu tambah _redirects file untuk SPA routing.