Latihan 2 dari materi useMemo & useCallback di React — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Buktikan bahwa useCallback dan memo bekerja. Kode awal sudah punya Child yang dibungkus memo dan mencetak console.log("Child rendered"), serta App dengan state count dan text, <span id="count">, <Child onClick={handleClick} />, dan <input id="text-input">. Biarkan semuanya. Tugasmu cuma melengkapi handleClick:
Isi badan useCallback-nya dengan setCount((c) => c + 1).
Isi dependency array-nya dengan []. Karena setCount memakai bentuk function, handler-nya gak perlu membaca count, jadi function-nya tetap sama di tiap render.
Yang dicek: #count berbunyi 0 saat pertama tampil, dan Child rendered tercetak di console saat render pertama. Klik #child-btn membuat #count jadi 1, dan dari awal lagi, dua klik membuatnya 2. Lalu halo diketik di #text-input, dan sesudah ketikan itu Child rendered gak boleh tercetak lagi. Kodenya juga harus memanggil setCount(.
Hint
Child dibungkus memo, jadi dia cuma render ulang kalau props-nya berubah. Satu-satunya props-nya onClick, jadi function itu harus tetap sama saat kamu mengetik.
Di dalam useCallback, naikkan count dengan bentuk function, setCount((c) => c + 1), supaya gak perlu membaca count. Lalu dependency array-nya boleh kosong.