UseEffect Overusing
UseEffect Overusing
OVERUSING
USEEFFECT IN
REACT
MADHAV KABRA
WHAT'S WRONG?
This doesn’t belong in useEffect.
useEffect is often misused for things that don’t need side effects.
MADHAV KABRA
WHEN YOU NEED
Fetching data
Subscribing to events
MADHAV KABRA
WHAT IT’S NOT
FOR
Setting local state
Deriving state from props
Running on mount when you
don’t need to
MADHAV KABRA
COMMON MISTAKE #1
Updating state on mount:
Instead:
MADHAV KABRA
COMMON MISTAKE #2
Deriving state from props:
Unnecessary duplication!
MADHAV KABRA
@REALLYGREATSITE
MADHAV KABRA
REACT ALREADY
REACTS
React rerenders when props/state
change.
MADHAV KABRA
DATA FETCHING
Good use case:
MADHAV KABRA
EVENT LISTENERS
MADHAV KABRA
@REALLYGREATSITE
TIMEOUTS AND
INTERVALS
MADHAV KABRA
AVOIDING RERENDER
LOOPS
MADHAV KABRA
THE DERIVED
STATE TRAP
Instead:
MADHAV KABRA
RETHINK DATA FLOW
Often,
useEffect is compensating
for a bad component
design.
Fix the data flow instead of
syncing it.
MADHAV KABRA
USEMEMO OR
DERIVED VALUES
Want to compute once?
Not useEffect.
MADHAV KABRA
FORM STATE
EXAMPLE Bad:
Good:
MADHAV KABRA
SIDE EFFECTS SHOULD
BE SIDE EFFECTS
If you’re not triggering a
browser API, network
request, or external system —
Don’t use useEffect.
Ask:
Would this logic still be needed
if this were a server-rendered
component?”
If not — don’t put it in useEffect.
MADHAV KABRA
FINAL THOUGHTS
MADHAV KABRA
LIKE
SHARE
FLLOW
MADHAV KABRA
For More