React.js’in useReducer kancası, bileşen içindeki durumu yönetmek için kullanılır ve genellikle karmaşık durum yönetimi gerektiren durumlarda useState‘den daha uygun bir seçenektir. Birkaç adımda useReducer kancasını kullanarak bir örnek oluşturalım:
- İlk olarak, bir reducer fonksiyonu oluşturmalıyız. Bu fonksiyon, mevcut durum ve bir eylem almalı ve yeni durumu döndürmelidir. Eylemler, durumu güncellemek için belirli komutları temsil eder. Bu örnekte, artırmak ve azaltmak için iki ayrı eylem olacak.
const reducer = (state, action) => {
switch (action.type) {
case 'INCREMENT':
return { count: state.count + 1 };
case 'DECREMENT':
return { count: state.count - 1 };
default:
return state;
}
};- Ardından,
useReducerkancasını kullanarak durumu ve dispatch fonksiyonunu bileşen içinde tanımlayabiliriz.
import React, { useReducer } from 'react';
const Counter = () => {
const initialState = { count: 0 };
const [state, dispatch] = useReducer(reducer, initialState);
return (
<div>
Count: {state.count}
<button onClick={() => dispatch({ type: 'INCREMENT' })}>Increment</button>
<button onClick={() => dispatch({ type: 'DECREMENT' })}>Decrement</button>
</div>
);
};
export default Counter;Bu örnekte, useReducer kancası bir reducer fonksiyonu ve başlangıç durumuyla birlikte kullanılır. Ardından, dispatch fonksiyonu, durumu güncellemek için belirli bir eylemi tetiklemek için kullanılır. Eylemler bir nesne olarak belirtilir ve type alanı, hangi eylemin gerçekleştirileceğini belirtir. Bu nesne, dispatch fonksiyonuna geçirilir ve reducer fonksiyonu tarafından işlenir. Sonuç olarak, durum güncellenir ve bileşen yeniden render edilir.
