Postat acum 1 zi
Scriu cinstit: am folosit useEffect ca un componentDidMount clone. Abia după 6 luni am înțeles că e altceva.
Ce am greșit
- Am pus effect-uri pentru "sincronizare" când nu aveam nevoie de sync
- Am uitat
dependenciesși am avut stale closures - Am pus cleanup-ul doar când îmi aduceam aminte
Click-ul mental
useEffect NU e "rulează după render". E "sincronizează cu ceva extern".
Dacă nu te sincronizezi cu nimic extern (timer, subscription, WebSocket, DOM manual), probabil nu ai nevoie de effect.
Ce fac acum
- Pentru derived state →
useMemosau calcul direct - Pentru event handlers → direct în JSX
- Pentru fetch la mount → Server Components sau
usehook useEffectdoar pentru integrări cu lumea externă
Viața mea de dev e mult mai simplă de atunci.