JavaScript por Radu TM • June 16, 2022
import React, { useState, useEffect } from 'react';
function useThrottle(fn, threshhold, scope) {
let lastFnCallTimestamp = Date.now();
return function throttleWrapper() {
const now = Date.now();
if (now - lastFnCallTimestamp < threshhold) return;
lastFnCallTimestamp = now;
fn.apply(scope, arguments);
}
}
// Uso
function MyComponent() {
const [clicks, setClicks] = useState(0);
function handleClick() {
setClicks(clicks + 1);
}
const throttledHandleClick = useThrottle(handleClick, 1000);
return (
<div onClick={throttledHandleClick}>
Este div foi clicado {clicks} vezes.
</div>
);
}
0
47.265