Skip to content

useCallbackOncePerRender ​

useCallbackOncePerRender es un Hook de React que garantiza que un callback se ejecute una sola vez, sin importar cuántas veces lo llames. Te resulta útil para operaciones que solo deben ejecutarse una vez, incluso si el componente vuelve a renderizarse.

Interfaz ​

ts
function useCallbackOncePerRender<F extends (...args: any[]) => void>(
  callback: () => void,
  deps: DependencyList
): (...args: any[]) => void;

Parámetros ​

  • callbackrequired · () => void

    El callback que debe ejecutarse una sola vez.

  • depsrequired · DependencyList

    Arreglo de dependencias que permite una nueva ejecución única cuando cambia.

Valor de retorno ​

  • (...args: any[]) => void

    Una función memorizada que solo se ejecutará una vez hasta que cambien las dependencias.

Ejemplo ​

tsx
import { useCallbackOncePerRender } from 'react-simplikit';

function Component() {
  const handleOneTimeEvent = useCallbackOncePerRender(() => {
    console.log('Esto solo se ejecutará una vez');
  }, []);

  return <button onClick={handleOneTimeEvent}>Haz clic aquí</button>;
}
tsx
// Con dependencias
function TrackingComponent({ userId }: { userId: string }) {
  const trackUserVisit = useCallbackOncePerRender(() => {
    analytics.trackVisit(userId);
  }, [userId]);

  useEffect(() => {
    trackUserVisit();
  }, [trackUserVisit]);

  return <div>Página del usuario</div>;
}

Publicado bajo la licencia MIT.