Zustand

Web & Masaüstü Frontend Teknolojileri
Zustand
Zustand; React için minik, görüş dayatmayan bir durum yönetim kütüphanesidir. Tek hook, sıfır şablon kod, sıfır sağlayıcı ve Redux'un yüzey alanının çok küçük bir kesri ile gelir — React Context'e ait olmayan uygulama çapında durum için 2026 varsayılan tercihidir.
Nedir?
Zustand; pmndrs (Poimandres) kolektifinden, React için ~1 KB boyutunda bir durum yönetim ilkelidir. Mağaza (store), `create()` ile oluşturulan tek bir hook'tur; bileşenler dilimlere abone olur ve yalnızca kendi dilimi değiştiğinde yeniden render eder. Reducer yok, action tipi yok, Provider yok — sadece sade TypeScript fonksiyonları.
Ne işe yarar?
Zustand; global durum, hesaplanan seçiciler (selector), asenkron eylemler, middleware (persist, devtools, immer, subscribeWithSelector) ve React'in render döngüsü dışında geçici güncellemeler için hook-öncelikli bir API sunar. React 19 eşzamanlı render, Next.js App Router ve Server Components ile sorunsuz çalışır — SSR desteği birinci sınıftır.
Nerede kullanılır?
Zustand; binlerce üretim React uygulamasının durum katmanını besler — Vercel'in kendi mülkleri, Three.js/React Three Fiber demoları ve pmndrs ekosisteminin büyük bir kısmı dâhil. Redux ağır geldiğinde, Context yeniden render'ları performansı kanattığında ve mimari tören olmadan 'sorunsuz çalışan' durum isteyen ekipler Zustand'a geçer.
Ne zaman ve neden ortaya çıktı?
Zustand 2019'da Daishi Kato ve pmndrs ekibi tarafından 'gerçekten bir alışveriş sepeti için 2 KB Redux şablon koduna ihtiyacımız var mı?' sorusuna yanıt olarak yayımlandı. 2024'e gelindiğinde yeni React projelerinde Redux Toolkit'i geçmişti; 2026 verileri çoklu-atom yaklaşımları yerine tek, pragmatik mağaza tercih eden uygulamalarda onu Recoil, Jotai ve MobX'in önüne koyuyor.
Internative'de neden kullanıyoruz?
Zustand; yayımladığımız her Next.js uygulamasında istemci tarafı durum için varsayılanımız. React Server Components ile temiz entegre olur (sunucu durumu sunucuda, istemci durumu Zustand'da), HMR'de durumu kaybetmeden hayatta kalır ve seçici tabanlı abonelikleri, sade Context kullanımının 'tüm ağaç yeniden render' sorununu ortadan kaldırır. Küçük mağazalar, küçük bundle, büyük verimlilik.