🔄 مميز

Zustand

مكتبة إدارة حالة خفيفة (Lightweight State Management)

(5/5)
👁️ 4 مشاهدة
📅 02 Jul 2026
⚛️ React 💚 Vue.js 🅰️ Angular 🧡 Svelte 🌐 عام

مستوى الخبرة المطلوب:

🌱 مبتدئ ⚡ متوسط 🚀 محترف 🏢 مؤسسي
🔗 زيارة الموقع الرسمي
5
تقييم المستخدمين
التصنيف 🔄 State-Management
المشاهدات 4
تاريخ الإضافة 02/07/2026
آخر تحديث 02/07/2026

📖 الوصف

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

🔄 البدائل

أدوات بديلة يمكنك استخدامها

Jotai
Redux Toolkit
MobX

💻 مثال على الاستخدام

كيفية استخدام هذه الأداة

Example Code
// 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

قد يعجبك أيضاً