useMemo

useMemo is used to memoize the result of a computation, so the computation is only performed when its dependencies change. This can improve performance by avoiding expensive calculations on every render.

When to Use useMemo:

  1. Expensive Calculations:

  2. Dependent Values:

  3. Avoiding Recalculations in List Rendering:

When Not to Use useMemo:

useCallback

useCallback is used to memoize callback functions, ensuring the function reference remains the same between renders unless its dependencies change. This is particularly useful for preventing unnecessary re-renders of child components that rely on these functions.

When to Use useCallback:

  1. Event Handlers:

  2. Optimising Performance in Child Components:

  3. Avoiding Function Recreation:

When Not to Use useCallback:

Determining if a Calculation is Trivial or Cheap