🟨 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗗𝗮𝘆 𝟱𝟱: 𝗥𝗲𝗳𝗲𝗿𝗲𝗻𝘁𝗶𝗮𝗹 𝗜𝗻𝘁𝗲𝗴𝗿𝗶𝘁𝘆 (𝗪𝗵𝘆 𝗬𝗼𝘂𝗿 𝗥𝗲𝗮𝗰𝘁 𝗖𝗼𝗺𝗽𝗼𝗻𝗲𝗻𝘁 𝗥𝗲-𝗿𝗲𝗻𝗱𝗲𝗿𝘀) Sometimes your React component re-renders… even when the data looks the same. 🔹 𝗧𝗵𝗲 𝗣𝗿𝗼𝗯𝗹𝗲𝗺 𝗜 𝗙𝗮𝗰𝗲𝗱 I had a useEffect running again and again, even though the value wasn’t changing. 🔹 𝗧𝗵𝗲 𝗖𝗼𝗿𝗲 𝗥𝗲𝗮𝘀𝗼𝗻 In JavaScript, objects and arrays are compared by reference, not value. const a = { value: 10 }; const b = { value: 10 }; console.log(a === b); // false Even though values are same → references are different. 🔹 𝗧𝗵𝗲 𝗥𝗲𝗮𝗰𝘁 𝗕𝗲𝗵𝗮𝘃𝗶𝗼𝗿 React relies on shallow comparison in: • useEffect dependency array • React.memo • useCallback / useMemo const data = { value: 10 }; useEffect(() => { console.log("Runs every render!");* }, [data]); Here: • data is recreated on every render • new reference each time • effect keeps running → 🔁 🔹 𝗢𝗻𝗲 𝗪𝗮𝘆 𝘁𝗼 𝗙𝗶𝘅 𝗜𝘁 const data = useMemo(() => ({ value: 10 }), []); Now: • reference is stable • effect runs only when needed ✅ 🔹 𝗞𝗲𝘆 𝗧𝗮𝗸𝗲𝗮𝘄𝗮𝘆 React doesn’t check deep equality — it checks references. Same value ≠ same reference. 💬 GitHub example in the comments. #JavaScript #React #Frontend #100DaysOfCode #Day55
Keep sharing
https://github.com/nishchaya2k