Back Kembali ke Daftar 📅 04 Jun 2025

useCallback – Counter dengan Tombol Anak (Child Button)

Artikel terbaru dari MahirGroups

Aplikasi penghitung (counter) dengan komponen anak yang menerima fungsi dari parent. Kita optimasi fungsi agar tidak dibuat ulang setiap render menggunakan useCallback.

Struktur:

  • Parent: menyimpan state count dan fungsi increment.
  • Child: tombol yang memanggil increment.
Kode:

jsxCopyEditimport React, { useState, useCallback } from 'react';

const IncrementButton = React.memo(({ onIncrement }) => {
  console.log('Child component rendered');
  return <button onClick={onIncrement}>+1</button>;
});

function CounterApp() {
  const [count, setCount] = useState(0);

  const increment = useCallback(() => {
    setCount((prev) => prev + 1);
  }, []); // fungsi tidak akan berubah antar render

  return (
    <div>
      <h1>Count: {count}</h1>
      <IncrementButton onIncrement={increment} />
    </div>
  );
}

Penjelasan useCallback:

  • Fungsi increment tidak dibuat ulang di setiap render karena dibungkus useCallback.
  • Tanpa useCallback, komponen IncrementButton akan selalu re-render walau tidak perlu.
  • Cocok dipakai saat passing fungsi ke komponen anak yang di-memoize (pakai React.memo).

Bagikan artikel ini: