A React page feels slow, so someone opens the code and starts adding memo, useMemo, and useCallback everywhere.

Usually that makes the code harder to read before it makes the page faster.

React rendering a component again is normal. React does that when state, props, or context change so it can work out what the screen should look like now. It can run a component function again without changing anything in the browser.

It becomes worth looking into when a small update makes expensive parts of the page run again for no useful reason. A user opens a help panel, but a large table, charts, and filters also run. That is where the page starts to feel slow.

Most of the time, the cause is simple: state is sitting too high in the component tree.