useCallback

React 🟡 Mid

Définition

Hook qui memoize une fonction pour conserver la même référence entre les rendus. Équivalent a useMemo(() => fn, deps).

Analogie

Comme donner toujours le même numéro de téléphone a un contact : il n'a pas besoin de mettre a jour son carnet a chaque fois.

Exemple de code

const handleClick = useCallback((id) => {
  setItems(prev => prev.filter(i => i.id !== id));
}, []); // reference stable

<MemoizedList onDelete={handleClick} />

Cas d'usage

Stabiliser la référence d'un callback passé à un enfant mémoïsé. Avec React Compiler 1.0 (7 octobre 2025), le compilateur produit ces références stables lui-même ; useCallback manuel sert de soupape quand on veut garder la main.

Anti-pattern

useCallback sans React.memo (ou sans compilateur) sur l'enfant : la mémoïsation ne sert à rien ; et depuis le compilateur, l'ajouter partout alourdit le code sans gain.
#hooks#interview#performance

En entretien

  1. Quelle différence entre useCallback et useMemo ?

    useCallback mémoïse une fonction pour garder la même référence entre les rendus, c'est équivalent à useMemo(() => fn, deps) mais pour des fonctions. On l'utilise pour stabiliser la référence d'un callback passé à un enfant mémoïsé.

  2. Quand est-ce que useCallback ne sert à rien ?

    Sans React.memo, ou sans compilateur, sur l'enfant, la mémoïsation ne sert à rien. Depuis React Compiler 1.0 (7 octobre 2025), le compilateur produit lui-même ces références stables, donc l'ajouter partout alourdit le code sans gain.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre