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.


Murat Bilginer
21 Şubat 1992'de doğdum. Endüstri Mühendisi olarak lisansımı 2016 yılında tamamladım. Industryolog Akademi - NGenius oluşumlarının kurucusuyum. Şu anda kendi şirketim Brainy Tech ile Web ve Mobil Geliştirme, AWS, Google Cloud Platform Sistemleri için DevOps, Big Data Analiz ve Görselleştirme hizmetleri sunmakta ve Online Eğitimler vermekteyiz.