yoklateknik mülakat

Mobil Rn React Hooks State Management Mülakat Soruları

75 doğrulanmış Mobil Rn React Hooks State Management mülakat sorusu — cevaplarıyla çöz, açıklamalarıyla öğren, gerçek simülasyonda kendini test et.

Gerçek simülasyonu dene →

Örnek sorular

Rn React Hooks State ManagementZorluk 1
useState'ten dönen setter'ı çağırmak gerçekte ne yapar?
  • aNative UI yeniden çizilene kadar JS thread'ini bloklar.
  • bSatır bitmeden değişkeni yerinde anında mutasyona uğratır.
  • cDeğeri kalıcılık için doğrudan AsyncStorage'a yazar.
  • dBir sonraki render geçişinde yeni state değeriyle bir re-render.
Açıklama:useState'in setter'ı hiçbir şeyi senkron olarak mutasyona uğratmaz. React'e bu component'in state'inin değiştiğini söyler, React de component fonksiyonunun yeni değerle tekrar çalışacağı bir re-render zamanlar.
Rn React Hooks State ManagementZorluk 1
Bir component'te const [user, setUser] = useState({ name: 'Ada', age: 30 }); var. Sadece yaşı güncellemek için setUser({ age: 31 }) çağrılıyor. name'e ne olur?
  • aReact yeni objeyi eskisiyle otomatik birleştirir, name korunur.
  • bState { age: 31 } olur — name kaybolur, çünkü useState merge etmez.
  • cReact obje eksik olduğu için runtime hatası fırlatır.
  • dname 'Ada' kalır ama component'in geri kalan ömrü boyunca read-only olur.
Açıklama:Class component'lerdeki this.setState'in aksine, useState'in setter'ı tüm değeri değiştirir. Tek bir alanı güncellemek için önceki state'i spread etmek gerekir: setUser(prev => ({ ...prev, age: 31 })).
Rn React Hooks State ManagementZorluk 1
useEffect(() => { fetchData(); }, []) (boş dependency array) ne yapar?
  • aİlki dahil her render'dan önce fetchData'yı çalıştırır.
  • bfetchData'yı component mount olduktan hemen sonra bir kez.
  • cArray boş olduğu için fetchData'yı hiç çalıştırmaz.
  • dfetchData'yı otomatik olarak saniyede bir çalıştırır.
Açıklama:Boş dependency array, effect'in reaktif bağımlılığı olmadığı anlamına gelir; bu yüzden React onu sadece ilk mount'tan sonra bir kez çalıştırır ve sonraki re-render'larda tekrar çalıştırmaz (component unmount olup yeniden mount olmadıkça).
Rn React Hooks State ManagementZorluk 2
useEffect(() => { console.log('render'); }); ikinci argüman hiç verilmeden (dependency array yok) yazılıyor. Ne zaman çalışır?
  • aBoş array gibi sadece bir kez, mount'ta.
  • bSadece component unmount olmak üzereyken.
  • cİlki ve her re-render dahil, her bir render'dan sonra.
  • dHiçbir zaman, çünkü array'i atlamak geçersizdir ve React sessizce yok sayar.
Açıklama:Dependency array'i tamamen atlamak (hatta [] bile geçirmemek) React'e effect'i her render'dan sonra çalıştırmasını söyler — mount ve sonraki her re-render — hiçbir memoization olmadan.
Rn React Hooks State ManagementZorluk 2
useEffect(() => {
  const sub = eventEmitter.addListener('update', onUpdate);
  return () => sub.remove();
}, []);

Döndürülen () => sub.remove() fonksiyonu ne zaman çalışır?
  • aComponent unmount olmadan hemen önce, ya da effect yeniden çalışmadan önce.
  • baddListener çağrıldıktan hemen sonra, senkron olarak, anında.
  • cSadece uygulama çökerse ve React kurtarma yapması gerekirse.
  • dHerhangi bir kardeş component her re-render olduğunda.
Açıklama:Bir effect'ten döndürülen fonksiyon onun temizliğidir. React bunu effect yeniden çalışmadan hemen önce (burada deps [] olduğu için geçerli değil) ve her durumda component unmount olmadan hemen önce çağırır — effect tarafından kaydedilen listener'ları kaldırmak için standart yer.
Rn React Hooks State ManagementZorluk 2
function Timer({ label }) {
  useEffect(() => {
    const id = setInterval(() => {
      console.log(label);
    }, 1000);
    return () => clearInterval(id);
  }, []);
}

label bir prop güncellemesiyle zamanla değişiyor ama console her zaman gördüğü ilk değeri loglamaya devam ediyor. Neden?
  • aconsole.log tüm çağrılar boyunca ilk argümanını sonsuza dek önbelleğe alır.
  • bReact Native'de setInterval closure'ları tamamen yok sayar.
  • cBu bir derleyici hatasıdır ve kod aslında çalışmaz.
  • dEffect'in boş deps'i, label üzerindeki closure'ın sadece mount'ta bir kez.
Açıklama:Effect sadece bir kez çalıştığı için ([]), setInterval'a geçirilen callback sadece o ilk render'daki label değerini closure ile yakalar. Sonraki render'lar yeni bir label değişkeni oluşturur ama zaten çalışmakta olan interval eski olana referans vermeye devam eder — klasik bir stale closure bug'ı.

2400 soruluk Mobil bankasında kendini sına.

Mülakata başla