CodeBlanks Logo Icon CodeBlanks

useEffect lifecycle

useEffect ile yaşam döngüsü öğrenirsin.

useEffect ile yaşam döngüsü

useEffect, sınıf bileşenlerin üç yaşam döngüsü metodunu (componentDidMount, componentDidUpdate, componentWillUnmount) tek bir kancada birleştirir. Bağımlılık dizisi hangi aşamada çalışacağını belirler.

Boş dizi [] yalnızca mount'ta; dolu dizi [a, b] mount'ta ve a ya da b değişince; dizi yoksa her çizimde çalışır. Cleanup döndürerek unmount davranışı eklenir.

Uygulama userId değişimini izle

Bir useEffect ekle. İçinde console.log('user: ' + userId) yaz ve bağımlılık dizisine userId koy.

Başlangıç kodu

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

export default function Profile({ userId }) {
  // userId değişince log yaz
  return <Text>{userId}</Text>;
}

Örnek çözüm

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

export default function Profile({ userId }) {
  useEffect(() => {
    console.log('user: ' + userId);
  }, [userId]);
  return <Text>{userId}</Text>;
}

Üç davranış

useEffect üç temel davranış sunar. Yalnızca mount için boş dizi; değişen değer için dolu dizi; her çizim için dizi yok. Cleanup her durumda döndürülebilir.

Bu üç davranış, tek bir kancayla yan etkileri yaşam döngüsüne göre ayarlamanı sağlar. Doğru dizi seçimi, gereksiz çalışmayı ve sızıntıyı önler.

Soru ve cevaplar

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

1 Hiç bağımlılık dizisi vermezsen ne olur?

  • Yalnızca mount'ta çalışır
  • Her çizimde çalışır Doğru cevap
  • Yalnızca unmount'ta çalışır
  • Hiç çalışmaz

Açıklama: Dizi yoksa efekt her çizimde çalışır.

2 count değişimini izle

Soru
useEffect(() => { save(count); }, [____]);
Cevap
useEffect(() => { save(count); }, [count]);

Açıklama: [count] dizisi count değişimini izler.

3 Dizi davranışını eşleştir

Kavram Anlamı
[] Yalnızca mount
[count] Mount + count değişimi
dizi yok Her çizim
cleanup Unmount öncesi

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