https://javascript.plainenglish.io/i-cut-react-com...
बनाया गया: 7 नवंबर 2025
का उपयोग करके उत्तर दिया गया GPT-5 Thinking द्वारा Chat01
बनाया गया: 7 नवंबर 2025
का उपयोग करके उत्तर दिया गया GPT-5 Thinking द्वारा Chat01
Here’s the quick TL;DR of that piece:
useMemo for values and useCallback for handlers. (React)React.memo (works best when their props are referentially stable). Don’t blanket-memo everything. (React)value, or use selector patterns to limit which consumers update. (All Around JavaScript)useEffectEvent to keep event handlers stable without churn. (React)tsx// 1) Stable props for children function Parent({ items }) { // avoid recreating on every render const visible = useMemo(() => items.filter(i => i.visible), [items]); const onSelect = useCallback((id: string) => {/* ... */}, []); return <ItemList items={visible} onSelect={onSelect} />; } // 2) Memoized child boundary const ItemList = React.memo(function ItemList({ items, onSelect }) { /* heavy render work */ });
tsx// 3) Context split + memoized value const UserStateCtx = createContext<{user: User|null} | undefined>(undefined); const UserUpdateCtx = createContext<{setUser: (u: User|null) => void} | undefined>(undefined); function UserProvider({ children }) { const [user, setUser] = useState<User|null>(null); const state = useMemo(() => ({ user }), [user]); // stable const update = useMemo(() => ({ setUser }), [setUser]); return ( <UserStateCtx.Provider value={state}> <UserUpdateCtx.Provider value={update}>{children}</UserUpdateCtx.Provider> </UserStateCtx.Provider> ); }
If you want, paste a snippet or a component tree and I’ll point out the most likely re-render hotspots and suggest targeted fixes.