العودة إلى الدورة

مقدمة في البرمجة التفاعلية (Reactive Programming) و RxJS

مطور Angular الشامل: من الصفر إلى الاحتراف

51. مقدمة في البرمجة التفاعلية (Reactive Programming) و RxJS

RxJS (Reactive Extensions for JavaScript) هي مكتبة لإنشاء برامج غير متزامنة وقائمة على الأحداث باستخدام Observables. إنها أساسية لكيفية تعامل Angular مع العمليات غير المتزامنة (HTTP، التوجيه، الأحداث).

ما هي البرمجة التفاعلية؟

البرمجة التفاعلية تدور حول التعامل مع تدفقات البيانات غير المتزامنة. كل شيء هو تدفق: نقرات المستخدم، استجابات الخادم، أحداث المؤقت، تغييرات الخصائص.

تشبيه: فكر في نمط المراقب (Observer pattern) الممتد للوقت.

  • Observable: مُنتِج البيانات (التدفق).
  • Observer: المستهلك الذي يحدد المُعالجين للقيم المُستلَمة (next)، والأخطاء (error)، والإكمال (complete).
  • Subscription: تنفيذ Observable، وربط Observable بـ Observer.

لماذا RxJS في Angular؟

  1. الاتساق (Uniformity): يوفر طريقة واحدة ومتسقة للتعامل مع جميع العمليات غير المتزامنة (HTTP، أحداث واجهة المستخدم، المؤقتات، التوجيه).
  2. الثبات (Immutability): لا تغير العمليات (Operators) التدفق نفسه، بل تُرجع تدفقاً متحولاً جديداً.
  3. تكوين قوي (Powerful Composition): يوفر RxJS مئات من العوامل (map، filter، merge) لتكوين منطق غير متزامن معقد بسهولة.

ملخص المفاهيم الرئيسية

المفهومالوصف
Observableمصدر ينبعث منه قيم متعددة بمرور الوقت.
Observerكائن بأساليب next و error و complete.
Subscriptionنتيجة استدعاء subscribe(). يبدأ التنفيذ ويسمح بالتنظيف.
Operatorsدوال نقية تحول Observable واحداً إلى آخر (على سبيل المثال، filter).

في الدروس التالية، سوف نستكشف عملياً كيف تختلف Observables عن Promises وكيفية استخدام العوامل الرئيسية.