By wrapping increment and decrement with useCallback, their references remain stable across renders, preventing unnecessary re-renders in child components that receive these functions as props.([GeeksforGeeks][2])
For components that perform heavy computations, useMemo can cache the result of a calculation, recomputing it only when its dependencies change.([Content That Scales][5])