CodeBlanks Logo Icon CodeBlanks

Unmount

Bileşen unmount olayını öğrenirsin.

Unmount

Bir bileşen ekrandan kaldırıldığında unmount olur. Bu, yaşam döngüsünün sonudur. React bileşeni çözer, olay dinleyicilerini ve abonelikleri bırakır.

Unmount sırasında temizlik yapmak için useEffect içine bir cleanup işlevi döndürülür. Bu işlev, bileşen kaldırılmadan hemen önce ya da bir sonraki efektten önce çağrılır.

Cleanup kullanımı

Bir setInterval ya da addEventListener kurduysan bunu temizlemelisin. useEffect içindeki işlevin döndürdüğü cleanup, kaynağı serbest bırakır.

Örnek: useEffect(() => { const id = setInterval(tick, 1000); return () => clearInterval(id); }, []). Mount'ta zamanlayıcı kurulur, unmount'ta temizlenir. Bu, bellek sızıntısını önler.

Uygulama Zamanlayıcı kur ve temizle

Bir setInterval kur ve cleanup olarak clearInterval çağır. Bileşen kaldırılınca zamanlayıcı temizlensin.

Başlangıç kodu

App.js
import React, { useState } from 'react';
import { Text } from 'react-native';

export default function Clock() {
  const [tick, setTick] = useState(0);
  // Mount'ta setInterval kur, unmount'ta clearInterval çağır
  return <Text>{tick}</Text>;
}

Örnek çözüm

App.js
import React, { useState, useEffect } from 'react';
import { Text } from 'react-native';

export default function Clock() {
  const [tick, setTick] = useState(0);
  useEffect(() => {
    const id = setInterval(() => setTick(t => t + 1), 1000);
    return () => clearInterval(id);
  }, []);
  return <Text>{tick}</Text>;
}

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Cleanup işlevi ne zaman çağrılır?

  • Bileşen kaldırılmadan önce Doğru cevap
  • Yalnızca mount sırasında
  • Hiçbir zaman
  • Sadece stil değişiminde

Açıklama: Cleanup, unmount'tan hemen önce çalışır.

2 Unmount kavramları

Kavram Anlamı
unmount Kaldırma anı
cleanup Temizlik işlevi
return Cleanup döndürür
abonelik Bırakılır

3 Cleanup döndür

Soru
useEffect(() => { const id = setInterval(tick, 1000); ____ }, []);
Cevap
useEffect(() => { const id = setInterval(tick, 1000); return () => clearInterval(id); }, []);

Açıklama: Cleanup, zamanlayıcıyı unmount'ta temizler.

Orta seviye bölümündeki tüm dersler