Önemli: Diğer yazılarımla direkt bağlantılı bir yazıdır. İlk olarak bu yazıdan okumaya başladıysanız, eğitim serisine kısaca bir göz atmanızı tavsiye ederim.
Merhabalar.
Bu yazımızda useEffect Hook’unun clean up olarak ifade edilen fonksiyonuna bakacağız.
useEffect
hook’u, bir bileşenin monte edilmesinden sonra ve her güncelleme sonrasında çalışan bir fonksiyonu içerebilir. Bu fonksiyon, temizleme işlemleri için kullanılır. Temizleme işlemleri genellikle event listener’ları kaldırmak, abonelikleri iptal etmek veya diğer kaynakları serbest bırakmak gibi işlemleri içerir.
useEffect
içindeki temizleme fonksiyonu, bir sonraki render öncesi veya bileşenin unmount edilmesi durumunda çalıştırılır. Eğer temizleme işlemlerine ihtiyaç duyuyorsanız, bu fonksiyonu kullanmanız önemlidir.
import React, { useEffect, useState } from 'react';
function ExampleComponent() {
const [data, setData] = useState([]);
useEffect(() => {
// Veri çağrısı örneği (componentDidMount için)
fetchData();
// Temizleme fonksiyonu örneği (componentWillUnmount için)
return () => {
console.log('useEffect temizlendi!');
// Event listener'ları kaldırma, abonelikleri iptal etme, vs. gibi temizleme işlemleri buraya yazılır.
};
}, []); // Dependency list boş, bu da useEffect'in sadece bir kere çalışmasını sağlar.
const fetchData = async () => {
// Veri çağrısı yapılabilir, örneğin:
try {
const response = await fetch('https://api.example.com/data');
const result = await response.json();
setData(result);
} catch (error) {
console.error('Veri çekme hatası:', error);
}
};
return (
<div>
<h1>useEffect ve Clean-up Örneği</h1>
<ul>
{data.map(item => (
<li key={item.id}>{item.name}</li>
))}
</ul>
</div>
);
}
export default ExampleComponent;
Bu örnekte, useEffect
içinde veri çağrısı yapılırken, aynı zamanda bir temizleme fonksiyonu da tanımlandı. Bu temizleme fonksiyonu, bileşen unmount edildiğinde veya bir sonraki render öncesi çalıştırılır.
Temizleme fonksiyonu, useEffect
içinde bir arrow fonksiyon olarak geri döndürülen bir fonksiyondur. Bu fonksiyon, useEffect
içindeki kodun her çalışmasının ardından çalıştırılır. Eğer dependency list kullanılıyorsa, temizleme fonksiyonu da dependency list değiştiğinde veya bileşen unmount edildiğinde çalıştırılır.
Temizleme fonksiyonu, özellikle event listener’ları, abonelikleri veya diğer kaynakları serbest bırakmak gibi işlemleri gerçekleştirmek için kullanışlıdır.
Bir sonraki yazımda görüşmek üzere.