En esta edición de GitHub, esencialmente propuse cambiar:
x = useCallback( ... , []);
A:
x = useRef( ... ).current;
Los dos son iguales pero con useRef
React no compara las dependencias.
Para lo cual llegó una respuesta con una pregunta:
¿Hay alguna situación en la que una useMemo o useCallback sin dependencia sea una mejor opción que useRef?
No puedo pensar en uno, pero puedo haber pasado por alto algunos casos de uso.
Entonces, ¿alguien puede pensar en tal situación?
useCallback(x,[])
auseRef(x)
funciona igual.useRef(x).current
es decir.useCallback(cb, [])
vsuseRef(cb).current
mí mismo. Aunque,useMemo(cb, [])
es diferenteuseRef(cb).current
en un sentido queuseMemo
, "solo volverá a calcular el valor memorizado cuando una de las dependencias haya cambiado". VersususeRef
que siempre vuelve a calcular el valor pase lo que pase.useRef
nunca vuelve a calcular: siempre devuelve el valor inicial.