use-flush
Version:
React hooks for flushing frequently changing state. It can optimize application via reducing re-rendering caused of changing state.
2 lines (1 loc) • 431 B
JavaScript
import{useState as o,useMemo as n,useEffect as t}from"react";var e=function(e,i){void 0===i&&(i=1e3);var u=o(-1),r=u[0],a=u[1],v=o([]),d=v[0],f=v[1],c=n(function(){return{value:[]}},[r]);return t(function(){c.value.push(e);var o=Date.now();void 0===c.now&&(c.now=o),void 0===c.pid&&(c.pid=window.setTimeout(function(){f(c.value),a(o)},i-(o-c.now)))},[e]),t(function(){-1!==r&&a(-1)},[r]),d};export default e;export{e as useFlush};