CodeBlanks Logo Icon CodeBlanks

Seçici kullanımı

Selector ile sadece gerekli state'i alıp çizimi azaltmayı öğrenirsin.

Shallow karşılaştırma

Birden çok değer okurken useStore'u selector ile çağırmak, her değişimde çizim tetikler. Bunu önlemek için shallow karşılaştırıcı kullanırsın.

import { shallow } from 'zustand/shallow' ile içe aktarır, useStore((s) => ({ a: s.a, b: s.b }), shallow) biçiminde çağırırsın. Bu, yalnızca a veya b değiştiğinde çizimi tetikler.

Shallow, nesnenin her alanını tek tek karşılaştırır; bu da referans değişse bile değer aynıysa çizimi önler.

Selector en iyi pratik

Selector, yalnızca gerçekten gereken en küçük parçayı döndürmeli. useStore((s) => s.user.name) yalnızca name'i okur; user değişse bile name aynıysa çizim olmaz.

Bu ince taneli selector, React'in yeniden çizim maliyetini ciddi azaltır; özellikle büyük listelerde fark yaratır.

Selector içinde yeni nesne üretmekten kaçın; her çağrıda yeni referans, çizimi her seferinde tetikler. Bu yüzden shallow kullanılır.

Uygulama İki değeri shallow oku

Aşağıdaki iskeleti tamamla. Counter bileşeni yaz. useCounter'ı (s) => ({ count: s.count, name: s.name }) selectorü ile ve shallow ile çağır. shallow'u 'zustand/shallow''tan içe aktar. <p>{name}: {count}</p> döndür. export default ekle.

Başlangıç kodu

App.jsx
import { shallow } from 'zustand/shallow';
import { useCounter } from './useCounter';

// Counter bileşenini buraya yaz

Örnek çözüm

App.jsx
import { shallow } from 'zustand/shallow';
import { useCounter } from './useCounter';

function Counter() {
  const { count, name } = useCounter(
    (s) => ({ count: s.count, name: s.name }),
    shallow
  );
  return <p>{name}: {count}</p>;
}

export default Counter;

Soru ve cevaplar

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

1 shallow ne zaman kullanılır?

App.jsx
Many values = shallow.
  • Tek bir değer okurken
  • Yalnızca CSS yazarken
  • Birden çok değer okurken Doğru cevap
  • Yalnızca test sırasında

Açıklama: shallow birden çok değer için kullanılır.

2 shallow importu

Soru
import { ____ } from 'zustand/shallow';
Cevap
import { shallow } from 'zustand/shallow';

Açıklama: shallow zustand/shallow'dan içe aktarılır.

3 Seçici kullanımı: kavramları eşleştir

Kavram Anlamı
shallow Karşılaştırıcı
selector İlgili parça
create Store kurar
set State günceller

İleri seviye bölümündeki tüm dersler