State Management Mistakes in React: Lessons I Learned the Hard Way


Every React project starts innocent.
A little useState here.
A prop passed there.
Everything feels clean.
Then one day:
Props drilling everywhere
Global state grows uncontrollably
Re-renders appear out of nowhere
That’s when you realize:
👉 state management mistakes are silent, but expensive.
This is the classic one.
“What if we just put everything in Redux/Zustand?”
Sounds efficient.
Ends up messy.
These states:
Only matter to one component
Don’t need to be global
Unnecessary re-renders
Harder to reason about
Tight coupling everywhere
✅ Rule of thumb:
If only one component cares, keep it local.
We’ve all done this.
Suddenly:
Lives in App.
Now everything depends on it.
Parent re-renders too often
Unrelated components update
Performance slowly degrades
✅ Lift state only when multiple siblings need it.
Global state is not just “bigger useState”.
Done too often, this:
Triggers many subscribers
Causes unexpected re-renders
✅ Global state should be:
Stable
Minimal
Well-structured
This one kills performance silently.
Now:
Any state change → re-render
Even if you don’t use it
✅ Do this instead:
Same applies to Redux selectors.
This one hurts beginners the most.
Day 1:
Day 2:
“Why is this so confusing?”
Reality:
useState + useContext solves many problems
Not every app needs global state
✅ Start simple. Scale when pain appears.
I’ve seen apps using:
useState
Context
Redux
Zustand
All in one project 😵💫
Hard to debug
Hard to onboard new devs
Mental overhead explodes
✅ Pick one main pattern, document it, stick to it.
My current mindset:
Local state by default
Lift state only when needed
Global state = minimal & explicit
Measure before optimizing
Tools don’t save you.
Architecture decisions do.
Is global state bad?
No, overusing it is.
Should I always use Redux or Zustand?
No. Only when needed.
Is Context enough?
For small apps, yes.
How do I know state should be global?
If many unrelated components need it.
Can bad state management hurt performance?
Absolutely.
Best advice?
Start small. Refactor often.
Most state management mistakes in React don’t crash your app.
They make it:
Slower
Harder to maintain
Stressful to work on
Good state management isn’t about libraries.
It’s about thinking clearly about data ownership.