Performance: What is useEffect
useEffect affects how and when side effects run, impacting interaction responsiveness and rendering timing.
useEffect(() => {
fetch('/api/data').then(res => res.json()).then(data => setData(data));
}, []);useEffect(() => {
fetch('/api/data').then(res => res.json()).then(data => setData(data));
});| Pattern | Effect Execution Frequency | Re-renders Triggered | Layout Thrashing | Verdict |
|---|---|---|---|---|
| Effect without dependency array | Runs every render | Many re-renders | High | [X] Bad |
| Effect with empty dependency array | Runs once | Minimal re-renders | Low | [OK] Good |
useEffect in React?useEffect doesuseEffect runs code after the component renders or when specified data changes.useEffect.useEffect that runs only once after the first render?[] as dependency makes useEffect run only once after the first render.import React, { useState, useEffect } from 'react';
function Counter() {
const [count, setCount] = useState(0);
useEffect(() => {
console.log('Count is:', count);
}, [count]);
return (
<button onClick={() => setCount(count + 1)}>Increment</button>
);
}count changes, logging the current count.count, triggering useEffect to log the new value.useEffect:useEffect(() => {
fetchData();
}, fetchData);fetchData is a function defined outside.useEffect must be an array listing dependencies, not a function.[fetchData] if fetchData is a dependency, not just fetchData alone.useEffect pattern is correct?useEffect(() => {
const subscription = subscribeToUserData();
fetchUserData();
return () => {
subscription.unsubscribe();
};
}, []);[] ensures effect runs once on mount and cleanup on unmount.Pass the test and this pattern moves unknown