React Hooks: A Complete Guide
ReactHooksJavaScript
React Hooks: A Complete Guide
Hooks revolutionized how we write React components, enabling state and side effects in functional components.
useState
Manage component state:
const [count, setCount] = useState(0)
return (
<button onClick={() => setCount(count + 1)}>
Clicked {count} times
</button>
)
useEffect
Handle side effects:
useEffect(() => {
document.title = `Count: ${count}`
}, [count])
useCallback
Memoize functions:
const handleClick = useCallback(() => {
console.log('Clicked')
}, [])
useMemo
Memoize expensive calculations:
const expensiveValue = useMemo(() => {
return computeExpensiveValue(a, b)
}, [a, b])
Custom Hooks
Create reusable logic:
function useLocalStorage(key: string, initialValue: string) {
const [value, setValue] = useState(() => {
return localStorage.getItem(key) ?? initialValue
})
useEffect(() => {
localStorage.setItem(key, value)
}, [key, value])
return [value, setValue]
}
Best Practices
- Always use hooks at the top level
- Only call hooks from React functions
- Use ESLint plugin for hooks rules
- Keep hooks simple and focused
Conclusion
Hooks make React code more reusable and easier to understand.