📋 محتويات الصفحة
📖 الوصف
Effector هي مكتبة لإدارة الحالة تعتمد على reactive primitives. تستخدم مفهوم "stores" و "events" مع reactive connections. تقدم أداءً ممتازاً وحجماً صغيراً (~8KB). Effector تتميز بـ framework-agnostic design و SSR support ممتاز. تدعم TypeScript بشكل كامل وتُقدم نهجاً مختلفاً عن Redux/MobX.
🎯 يستخدم في
مجالات استخدام هذه الأداة
State management في أي framework
State sharing كبير
Applications مع complex state logic
Multi-framework projects
Applications تتطلب أداء عالي
✨ المميزات
أبرز مميزات هذه الأداة
Framework-agnostic (React
Vue
Svelte)
Reactive primitives (stores
events
effects)
Performance ممتاز
TypeScript inference ممتاز
SSR support مدمج
Small size (~8KB)
Computation (derived stores)
No boilerplate (مقارنة بـ Redux)
DevTools integration
⚠️ العيوب
نقاط يجب مراعاتها
مجتمع صغير
موارد تعليمية محدودة
مفهوم مختلف يحتاج تعلم
أقل plugins من Redux
Less job opportunities
🔄 البدائل
أدوات بديلة يمكنك استخدامها
💻 مثال على الاستخدام
كيفية استخدام هذه الأداة
import { createStore, createEvent, createEffect, sample } from 'effector';
// Events
const increment = createEvent();
const decrement = createEvent();
const fetchUser = createEvent<string>();
// Effect (async operation)
const fetchUserFx = createEffect(async (id: string) => {
const response = await fetch(`/api/users/${id}`);
return response.json();
});
// Store
const $count = createStore(0)
.on(increment, (state) => state + 1)
.on(decrement, (state) => state - 1);
const $user = createStore<User | null>(null)
.on(fetchUserFx.doneData, (_, user) => user);
// Derived store
const $doubledCount = $count.map((count) => count * 2);
// Sample (connect events and stores)
sample({
clock: fetchUser,
target: fetchUserFx,
});
// React component
import { useUnit } from 'effector-react';
function Counter() {
const count = useUnit($count);
const doubled = useUnit($doubledCount);
const [inc, dec] = useUnit([increment, decrement]);
return (
<div>
<p>العدد: {count}</p>
<p>المضاعف: {doubled}</p>
<button onClick={inc}>زيادة</button>
<button onClick={dec}>تقليل</button>
</div>
);
}
📚 أدوات أخرى في 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)
Recoil
⭐مكتبة إدارة حالة ذرية (Atomic State Management)