CodeBlanks Logo Icon CodeBlanks

create ile store

create ile bir store yazmayı öğrenirsin.

Hook olarak kullanım

Zustand store'u bir hook döner; bileşenlerde bu hook'u bir selector ile çağırırsın. const count = useCounter((s) => s.count) yalnızca count'u okur.

Selector kullanmak, yalnızca ilgili parça değiştiğinde çizimi tetikler. Tüm state değişince bileşen tekrar çizilmez; bu performansı artırır.

Birden çok değer okumak için const { count, increment } = useCounter() yazabilirsin; ama bu, her değişimde çizimi tetikler.

set fonksiyonu

set, store'un state güncelleyicisidir. Yeni bir nesne döndüren bir fonksiyon ya da doğrudan bir nesne alır. set((s) => ({ count: s.count + 1 })) eski state'e dayalı güncelleme yapar.

Zustand set çağrısı otomatik olarak yeni state'i birleştirir; yani { count: 1 } verirsen diğer alanlar korunur.

Bu davranış, klasik React setState'in shallow merge davranışına benzer; tanıdık gelir.

Uygulama useTheme store yaz

Aşağıdaki iskeleti tamamla. create ile useTheme store'u tanımla. State: { theme: 'light', toggle: () => set((s) => ({ theme: s.theme === 'light' ? 'dark' : 'light' })) }. export const useTheme = create(...) ile dışa aktar.

Başlangıç kodu

App.jsx
import { create } from 'zustand';

// useTheme store'unu buraya yaz

Örnek çözüm

App.jsx
import { create } from 'zustand';

export const useTheme = create((set) => ({
  theme: 'light',
  toggle: () => set((s) => ({ theme: s.theme === 'light' ? 'dark' : 'light' })),
}));

Soru ve cevaplar

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

1 Selector kullanmanın faydası?

App.jsx
Relevant piece = selector.
  • Daha az kod yazdırır
  • Yalnızca ilgili parça değişince çizimi tetikler Doğru cevap
  • CSS sıkıştırır
  • Store'u siler

Açıklama: Selector, gereksiz çizimleri önler.

2 set çağrısı

Soru
increment: () => ____((s) => ({ count: s.count + 1 }));
Cevap
increment: () => set((s) => ({ count: s.count + 1 }));

Açıklama: set, state'i günceller.

3 create ile store: kavramları eşleştir

Kavram Anlamı
selector İlgili parça
set State günceller
get State okur
create Store kurar

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