useEffect Hook
useEffect, "SIDE EFFECTS" (jaise, API CALLS, SUBSCRIPTIONS, DOM MANIPULATION) ko, RENDER LOGIC SE, SEPARATE, RAKHTA hai — RENDER, KE, BAAD, RUN, HOTA, hai. SECOND, ARGUMENT (DEPENDENCY ARRAY), CONTROL, KARTA, hai, KAB, EFFECT, RE-RUN, HOGA.
Empty, DEPENDENCY ARRAY ([]), MATLAB, EFFECT, SIRF, EK, BAAR, (MOUNT PAR) RUN, HOGA. NO, DEPENDENCY, ARRAY, MATLAB, HAR, RENDER, PAR, RUN, HOGA. RETURN, KIYA, GAYA, FUNCTION (CLEANUP), COMPONENT, UNMOUNT, HONE, PAR, YA, NEXT, EFFECT, RUN, HONE, SE, PEHLE, CALL, HOTA, hai.
function UserProfile({ userId }) {
const [user, setUser] = React.useState(null);
React.useEffect(() => {
let cancelled = false;
fetch("/api/users/" + userId)
.then(res => res.json())
.then(data => { if (!cancelled) setUser(data); });
return () => { cancelled = true; }; // CLEANUP — race conditions AVOID
}, [userId]); // userId change hone par, RE-RUN
return user ? <h2>{user.name}</h2> : <p>Loading...</p>;
}- useEffect = render ke baad, side effects RUN karta hai
- Empty [] = mount PAR, SIRF, EK BAAR. No array = HAR render PAR
- Cleanup function (return), UNMOUNT/RE-RUN se, PEHLE, CALL hota hai
EK, COMPONENT, MEIN, MULTIPLE, useEffect, CALLS, HO, SAKTE, HAIN, HAR, EK, APNI, ALAG, RESPONSIBILITY, KE, SAATH — jaise, EK, DATA, FETCH, KE, LIYE, EK, SUBSCRIPTION, SETUP, KE, LIYE — "SEPARATION, OF, CONCERNS" BEHTAR, MAINTAINABILITY, DETA, hai.
useLayoutEffect, SYNCHRONOUSLY, DOM, MUTATIONS, KE, TURANT, BAAD, RUN, HOTA, hai, BROWSER, PAINT, SE, PEHLE — useEffect, PAINT, KE, BAAD, ASYNCHRONOUSLY, RUN, HOTA, hai. DOM, MEASUREMENTS, (jaise, ELEMENT, KI, HEIGHT, READ, KARNA) KE, LIYE, useLayoutEffect, USE, HOTA, hai, "FLICKER" AVOID, KARNE, KE, LIYE.
- useEffect = paint, ke, baad, ASYNC — MOST, common, use-cases
- useLayoutEffect = paint, se, pehle, SYNC — DOM, measurements, ke, liye