enalidade de desempenho na criação de manipuladores em cada renderizaç
Atualmente, estou muito impressionado com os casos de uso do novo react hooks API e o que você pode fazer com el
Uma pergunta que surgiu durante a experimentação foi o quão caro é sempre criar uma nova função de manipulador apenas para jogá-la fora ao usar ouseCallback
.
Considerando este exemplo:
const MyCounter = ({initial}) => {
const [count, setCount] = useState(initial);
const increase = useCallback(() => setCount(count => count + 1), [setCount]);
const decrease = useCallback(() => setCount(count => count > 0 ? count - 1 : 0), [setCount]);
return (
<div className="counter">
<p>The count is {count}.</p>
<button onClick={decrease} disabled={count === 0}> - </button>
<button onClick={increase}> + </button>
</div>
);
};
Embora eu esteja envolvendo o manipulador em umuseCallback
para evitar passar um novo manipulador toda vez que ela renderizar a função de seta embutida ainda precisa ser criada apenas para ser descartada na maioria das veze
Provavelmente não é grande coisa se eu renderizar apenas alguns componentes. Mas qual o tamanho do impacto no desempenho se eu fizer isso milhares de vezes? Existe uma penalidade de desempenho perceptível? E qual seria uma maneira de evitá-lo? Provavelmente uma fábrica de manipuladores estáticos que só é chamada quando um novo manipulador precisa ser criado?