📋 محتويات الصفحة
📖 الوصف
Zustand هي مكتبة خفيفة (~1KB) لإدارة الحالة في React. تستخدم hooks بسيطة مع store واحد خارج مكونات React. لا تحتاج Provider wrapper أو context، مما يجعل الـ setup أبسط بكثير من Redux. Zustand تشتهر ببساطتها وأدائها. لا re-renders غير ضرورية بفضل selective rendering. تدعم middleware، persistence، و ...
🎯 يستخدم في
مجالات استخدام هذه الأداة
إدارة الحالة في تطبيقات React
State management بسيط بدون boilerplate
State persists في localStorage
State مشترك بين components متعددة
Applications تحتاج لأداء عالي
✨ المميزات
أبرز مميزات هذه الأداة
خفيفة جداً (~1KB)
لا تحتاج Provider أو Context
API بسيط ومباشر
Performance ممتاز (selective renders)
Middleware (persist
devtools
immer)
TypeScript inference ممتاز
يعمل مع React و vanilla JS
متوافقة مع React concurrent features
⚠️ العيوب
نقاط يجب مراعاتها
محدود لـ React (رغم وجود نسخة core)
لا يوجد time-travel debugging
أقل middleware من Redux
مجتمع أصغر من Redux
🔄 البدائل
أدوات بديلة يمكنك استخدامها
💻 مثال على الاستخدام
كيفية استخدام هذه الأداة
// store.ts
import { create } from 'zustand';
import { persist } from 'zustand/middleware';
interface BearState {
bears: number;
increase: () => void;
reset: () => void;
}
export const useBearStore = create<BearState>()(
persist(
(set) => ({
bears: 0,
increase: () => set((state) => ({ bears: state.bears + 1 })),
reset: () => set({ bears: 0 }),
}),
{ name: 'bear-storage' }
)
);
// Async actions
interface AuthState {
user: User | null;
login: (credentials: Credentials) => Promise<void>;
logout: () => void;
}
export const useAuthStore = create<AuthState>((set) => ({
user: null,
login: async (credentials) => {
const user = await api.login(credentials);
set({ user });
},
logout: () => set({ user: null }),
}));
// Counter.tsx
import { useBearStore } from './store';
function Counter() {
const bears = useBearStore((state) => state.bears);
const increase = useBearStore((state) => state.increase);
return (
<div>
<p>الدببة: {bears}</p>
<button onClick={increase}>إضافة</button>
</div>
);
}
📚 أدوات أخرى في State-Management
قد يعجبك أيضاً
Effector
مكتبة إدارة حالة reactive (Reactive State Management)
Jotai
⭐مكتبة إدارة حالة ذرية (Atomic State Management)
MobX
⭐مكتبة إدارة حالة تفاعلية (Reactive State Management)
Nano Stores
مكتبة إدارة حالة خفيفة (Tiny State Manager)
NgRx
⭐مكتبة إدارة الحالة لـ Angular (Angular State Management)
Pinia
⭐مكتبة إدارة الحالة الرسمية لـ Vue (Vue State Management)