Passing functions as props can cause child components to re-render unnecessarily because functions are recreated on every render. The useCallback
hook memoizes functions, ensuring they maintain the same reference unless their dependencies change.([React][4])
import React, { useState, useCallback } from 'react';
function Counter() {
const [count, setCount] = useState(0);
const increment = useCallback(() => setCount(c => c + 1), []);
const decrement = useCallback(() => setCount(c => c - 1), []);
return (
<div>
<button onClick={increment}>+</button>
<span>{count}</span>
<button onClick={decrement}>-</button>
</div>
);
}