useCallback is hook that will return a memoized version of callback function that only changes if one of the dependencies has changed.
It is usefull when passing callback to optimized child component that rely on reference equality to prevent unnecessary renders.
A custom hook is basically a javascript function whose name starts with "use".
A custom hook can also call other Hook if require
Share Logic- Alternative to HOCs and render props