CodeBlanks Logo Icon CodeBlanks

create

create ile store oluşturmayı öğrenirsin.

create ile store

create, Zustand'ın tek giriş noktasıdır. Bir geri çağrı alır; bu geri çağrı state nesnesini döndürür. State nesnesi içinde hem veri alanları hem de action işlevleri bulunur. Bu ayrım Redux'taki gibi reducer/action bölmesine gerek bırakmaz.

Store, bir hook döndürür; bu yüzden ismi use ön ekiyle başlar (useCart, useAuth). Bileşenler bu hook'u çağırarak istedikleri alanı seçer. set işlevi, kısmı (partial) güncelleme yapar; yalnızca verilen alanlar değiştirilir, gerisi korunur.

Kısmı güncelleme

set, kendisine verilen nesneyi mevcut state ile birleştirir. set({ count: 5 }) çağrısı yalnızca count alanını değiştirir; state'in geri kalanı korunur. Bu davranış, Redux'ta Object.assign veya spread ile yaptığımız birleştirmenin yerini alır.

Önceki state'e göre güncelleme için set((s) => ({ count: s.count + 1 })) yazılır. Burada s, güncelleme öncesi state'tir. Bu kalıp sayaç, liste ekleme ve form alanları gibi durumlarda yaygın kullanılır.

Uygulama useCart store'u yaz

useCart store'u tanımla. create((set) => ({ items: [], addItem: (item) => set((s) => ({ items: [...s.items, item] })) })). export const ile dışa aktar.

Başlangıç kodu

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

// useCart store'unu tanımla

Örnek çözüm

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

export const useCart = create((set) => ({
  items: [],
  addItem: (item) => set((s) => ({ items: [...s.items, item] })),
}));

Soru ve cevaplar

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

1 create parçalarını eşle

Kavram Anlamı
create Store oluşturur
set Kısmı günceller
get State okur
use... Hook adı ön eki

2 set çağrısı

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

Açıklama: 1 yazılır; sayacı bir artırmak için kullanılan değerdir.

3 set hangi güncellemeyi yapar?

  • Kısmı güncelleme
  • Yalnızca okuma yapar Doğru cevap
  • Tüm state'i siler
  • Provider kurar

Açıklama: set kısmı güncelleme yapar.

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