React
Komponen, hooks, state management, dan pola yang dipakai di dunia kerja.
±80 jam · 0/78 selesai (0%)
Modul 1: Komponen & JSX
Mental model React: UI = fungsi dari data. Semua dimulai dari sini.
7 bab dalam modul ini
- 1.1Kenapa React ada: masalah DOM manual di aplikasi besar
- 1.2Komponen = fungsi yang mengembalikan JSX
- 1.3Aturan JSX: satu root, className, ekspresi {}
- 1.4Render kondisional: &&, ternary, early return
- 1.5Render list dengan map & kenapa key penting
- 1.6Setup proyek dengan Vite
- 1.7Struktur file komponen yang rapi
- ‹›Kenapa React Ada?Praktek
- ‹›Komponen = Fungsi Mengembalikan JSXPraktek
- ‹›Aturan JSX: Satu Root & Ekspresi {}Praktek
- ‹›Render Kondisional: &&, Ternary, Early ReturnPraktek
- ‹›Render List dengan map & KeyPraktek
- ‹›Setup Proyek dengan VitePraktek
- ‹›Struktur File Komponen yang RapiPraktek
- ?Kuis: Komponen & JSXKuis
Modul 2: Props & Komposisi
Data mengalir ke bawah — dan cara menyusun komponen seperti LEGO.
6 bab dalam modul ini
- 2.1Props: mengoper data & mengetik props dengan TS
- 2.2children — komponen pembungkus
- 2.3Komposisi vs konfigurasi: banyak props kecil vs satu props objek
- 2.4Lifting state up (pengantar)
- 2.5Default props & destructuring pattern
- 2.6Memecah UI jadi pohon komponen (latihan dari mockup)
Modul 3: State & Event
useState: satu-satunya cara React tahu harus menggambar ulang.
6 bab dalam modul ini
- 3.1useState: nilai, setter, dan re-render
- 3.2Event handler: onClick, onChange, onSubmit
- 3.3State = snapshot — kenapa setCount(count+1) dua kali tidak +2
- 3.4Updater function (prev => ...)
- 3.5State object & array: update secara immutable
- 3.6Kesalahan umum: mutasi langsung, state turunan yang tidak perlu
Modul 4: Form & List Interaktif
Pola CRUD di memori: dasar dari 80% UI aplikasi bisnis.
6 bab dalam modul ini
- 4.1Controlled input: value + onChange
- 4.2Form multi-field dengan satu state object
- 4.3Validasi sederhana & pesan error
- 4.4Menambah, mengedit, menghapus item list
- 4.5Filter & search di client
- 4.6Checkbox, radio, select dalam React
Modul 5: useEffect & Lifecycle
Sinkronisasi dengan dunia luar — dan modul yang paling banyak salah paham.
6 bab dalam modul ini
- 5.1Kapan effect dibutuhkan (lebih jarang dari dugaanmu)
- 5.2Dependency array: [], [dep], tanpa array
- 5.3Cleanup function: subscription, timer, abort
- 5.4Fetch dalam effect + race condition & AbortController
- 5.5StrictMode double-render: kenapa dan untuk apa
- 5.6'You might not need an effect' — pola yang harusnya bukan effect
Modul 6: Custom Hooks
Mengekstrak logika agar bisa dipakai ulang — tanda developer React yang matang.
5 bab dalam modul ini
- 6.1Aturan hooks & kenapa ada
- 6.2Membuat useLocalStorage, useDebounce, useFetch
- 6.3useRef: nilai persist tanpa render & akses DOM
- 6.4useMemo & useCallback — dan kapan itu optimasi prematur
- 6.5Membaca hooks library orang lain
Modul 7: Context & State Global
Berbagi data tanpa prop drilling — dengan takaran yang tepat.
6 bab dalam modul ini
- 7.1Prop drilling: masalah yang sebenarnya
- 7.2createContext, Provider, useContext
- 7.3Pola context + reducer (useReducer)
- 7.4Context untuk theme, auth, bahasa
- 7.5Perangkap performa context & cara membaginya
- 7.6Zustand: state global ringan yang dipakai industri
Modul 8: Data Fetching & Async UI
Pola loading/error/empty yang benar — pembeda UI amatir dan profesional.
6 bab dalam modul ini
- 8.1Tiga state wajib: loading, error, data (plus empty)
- 8.2Pola fetch-on-render & masalahnya
- 8.3TanStack Query: cache, refetch, invalidation
- 8.4Mutasi data & optimistic update
- 8.5Pagination & infinite scroll
- 8.6Menangani auth token di request
Modul 9: React Router
Aplikasi multi-halaman di satu page: navigasi, parameter, dan nested route.
6 bab dalam modul ini
- 9.1Route, Link, dan NavLink
- 9.2Route parameter (useParams) & query string
- 9.3Nested route & layout route
- 9.4Programmatic navigation (useNavigate)
- 9.5Halaman 404 & route guard sederhana
- 9.6Lazy loading route
Modul 10: Testing Komponen
React Testing Library: menguji seperti user memakai, bukan implementasi.
6 bab dalam modul ini
- 10.1Filosofi RTL: query by role, bukan by class
- 10.2render, screen, dan matcher jest-dom
- 10.3Simulasi interaksi dengan userEvent
- 10.4Menguji form: isi, submit, assert error
- 10.5Mock fetch/API di test
- 10.6Test apa yang layak ditulis (dan yang tidak)
Modul 11: Pola Dunia Kerja
Yang tidak diajarkan tutorial: struktur proyek, konvensi tim, dan membaca codebase orang.
7 bab dalam modul ini
- 11.1Struktur folder: by-feature vs by-type
- 11.2Komponen presentational vs container (dan evolusinya)
- 11.3Error boundary & fallback UI
- 11.4Environment variable & konfigurasi
- 11.5Membaca codebase React yang sudah ada — strategi orientasi
- 11.6Code review checklist untuk PR React
- 11.7Aksesibilitas di React: focus, label, aria
- ‹›Struktur Folder: Feature-based vs Type-basedPraktek
- ‹›Container vs Presentational PatternPraktek
- ‹›Handling Crash dengan Error BoundaryPraktek
- ‹›Environment Variable (import.meta.env)Praktek
- ‹›Strategi Orientasi Codebase BaruPraktek
- ‹›Checklist Code Review untuk PR ReactPraktek
- ‹›Aksesibilitas (a11y) di ReactPraktek
- ?Kuis: Pola Dunia KerjaKuis