short
Using React Hooks for State Management - Short Note - Naufaldi Rafif Satriya
Using React Hooks for State Management React Hooks like useState and useEffect manage state and side effects in functional components. Basic useState Exam...
- react
- hooks
- state-management
# Using React Hooks for State Management
React Hooks like useState and useEffect manage state and side effects in functional components.
Basic useState Example
import { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>Count: {count}</p>
<button onClick={() => setCount(count + 1)}>Increment</button>
<button onClick={() => setCount(count - 1)}>Decrement</button>
</div>
);
}
useEffect for Side Effects
import { useState, useEffect } from 'react';
function Timer() {
const [seconds, setSeconds] = useState(0);
useEffect(() => {
const interval = setInterval(() => {
setSeconds((prev) => prev + 1);
}, 1000);
return () => clearInterval(interval);
}, []);
return <div>Timer: {seconds} seconds</div>;
}
Custom Hooks
Create reusable state logic:
function useLocalStorage(key, initialValue) {
const [storedValue, setStoredValue] = useState(() => {
try {
const item = window.localStorage.getItem(key);
return item ? JSON.parse(item) : initialValue;
} catch (error) {
return initialValue;
}
});
const setValue = (value) => {
try {
setStoredValue(value);
window.localStorage.setItem(key, JSON.stringify(value));
} catch (error) {
console.error(error);
}
};
return [storedValue, setValue];
}
Key Benefits
- Simpler code: No need for class components
- Reusable logic: Extract and share stateful logic
- Better performance: Optimize with useMemo and useCallback
- Easier testing: Test hooks independently