When a parent component re-renders, child components may also re-render unnecessarily if a new function reference is passed each time. useCallback solves this by returning the same function instance ...
JpaRepository is what most people reach for by default. I do too most of the time. But the default is not always the right call. CrudRepository is the base. Save, findById, delete, count. That is it.