Latihan 2 dari materi Suspense & Lazy di React — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Tiru tiga keadaan lazy loading dengan state.
Kode awal sudah punya state loaded dan loading (keduanya mulai false), fungsi handleLoad, dan <button id="load">Muat Komponen</button>. Biarkan begitu.
Sebelum tombol diklik (loaded dan loading false), tampilkan <p id="placeholder">Klik tombol untuk memuat</p>.
Selama loading true, tampilkan <p id="fallback">Sedang memuat...</p>.
Setelah loaded true, tampilkan <div id="lazy-content">Komponen Berhasil Dimuat!</div>, dan #placeholder gak tampil lagi.
useState sudah tersedia di editor. Baris import boleh ditulis seperti di proyek sungguhan, tapi gak wajib. Kalau kamu menambah jeda dengan setTimeout supaya fallback-nya terlihat, buat singkat, misalnya 300 ms: hasilnya dicek kurang dari sedetik setelah klik.
Yang dicek:
Sebelum diklik, #placeholder berisi persis Klik tombol untuk memuat.
Sesudah #load diklik, #lazy-content berisi persis Komponen Berhasil Dimuat!, dan #placeholder gak ada lagi.
Kodemu menulis id="fallback".
Hint
Tiga keadaan, tiga tampilan: belum dimuat, sedang memuat, sudah dimuat. Tiap tampilan muncul dari kondisi state-nya sendiri.