Vad är en custom hook?
- En funktion som använder React hooks
Exempel, användningsområden
- Hämta data från ett API
- Hämta data från localStorage
- Hantera formulär
- Hantera cookies
En första custom hook
// implementation av useCounter
const { count, increment, decrement } = useCounter(0);
Hook under the hood
- En hook är en funktion som tar emot ett argument och returnera ett värde
- Inargumentet är oftast ett initialvärde
- Returvärde är ett objekt med värden och funktioner (som ofta destruktureras)
import { useState } from 'react';
export const useCounter = (initialValue: number) => {
const [count, setCount] = useState(initialValue);
const increment = () => setCount(count + 1);
const decrement = () => setCount(count - 1);
return { count, increment, decrement };
};
Använda en custom hook
import { useCounter } from './useCounter';
const Counter = () => {
const { count, increment, decrement } = useCounter(0);
return (
<div>
<p>Count: {count}</p>
<button onClick={increment}>Increment</button>
<button onClick={decrement}>Decrement</button>
</div>
);
};
Demo - bygga en egen useReducer