Loading...
Loading...
Use when writing, fixing, editing, or refactoring React hooks, custom hooks, useEffect, dependency arrays, stale closures, subscriptions, refs, or memoization.
npx skill4agent add gosukiwi/clean-code-react clean-react-hooksuseEffectuseEffect// Bad - derived state via effect
const [fullName, setFullName] = useState("");
useEffect(() => {
setFullName(`${firstName} ${lastName}`);
}, [firstName, lastName]);
// Good - derived during render
const fullName = `${firstName} ${lastName}`;function useWindowSize(): WindowSize {
const [size, setSize] = useState(getWindowSize);
useEffect(() => {
window.addEventListener("resize", handleResize);
return () => window.removeEventListener("resize", handleResize);
function handleResize() {
setSize(getWindowSize());
}
}, []);
return size;
}useMemouseCallback