freeCodeCamp/guide/arabic/redux/redux-reducers/index.md

2.9 KiB

title localeTitle
Redux Reducers مخفضات Redux

مخفضات Redux

تتيح لك مخفضات Redux إجراء تغييرات على حالتك في تطبيقك. الإجراءات في redux فقط تخبر التطبيق ما حدث في الأساس. سواء أكان ذلك حدثًا نقرة حدثت أو تم التمرير بالماوس ، فسيعلم فقط أن هذا الشيء حدث. الآن كيف يمكنك تغيير حالة التطبيق الخاص بك الذي يعيش داخل المتجر بشكل جيد تقوم بذلك باستخدام مخفض.

الآن يجب أن يكون المخفض في عملية redux عبارة عن وظيفة نقية. الوظيفة النقية هي نوع من الوظائف التي لا تحتوي على آثار جانبية إضافية. يمكنك تمريرها بعض الوسائط وترجع النتيجة المتوقعة. فمثلا:

`function add(a,b) { return a + b; }

const sum = add(5,4); `

الوظيفة المذكورة أعلاه هي نقية لأنه بغض النظر عما سيحدث فإنه سيعود 9. وظيفة تحتوي على مكالمات ajax بداخله أو يفعل شيئا مثل الوصول إلى قاعدة بيانات ليست وظيفة نقية. حتى لو قمنا بتحويل معنى التغيير ، فإن القيمة المتغيرة يمكن اعتبارها ليست وظيفة نقية.

الآن لإجراء تغييرات على الحالة التي تستخدمها المخفض. فيما يلي مثال لمدونة المخفض:

function todoReducer(state= [],action) { case 'ADD_TODO': return [...state,action.data] case 'DELETE_TODO': return state.filter(todo=>todo.id !== action.id) default: return state; }

ما يفعله تودروديروسر هو أنه يأخذ في الحالة الراهنة والإجراء الذي تم تشغيله ثم يقوم بإرجاع حالة جديدة. هنا استخدمنا بناء جملة المعلمة الافتراضية es6 لتعيين قيمة افتراضية لصفيف الحالة. قد يظهر كائن الإجراء للمخفض أعلاه كما يلي:

{ type: 'ADD_TODO', data: {name: 'Learn Redux',completed:false} }

هنا يحتوي الإجراء على خاصية كتابة 'ADD_TODO' مع كائن بيانات. والآن عندما يتم تشغيل هذا الإجراء ، يتم استلامه بواسطة المخفض ثم يعتمد على عبارة التبديل فإنه سيعرض مصفوفة جديدة مع البيانات الموجودة إلى جانب البيانات الجديدة.

إذاً ، لملخص المخفّضات ، ليست سوى وظائف نقية تقوم بإرجاع حالة جديدة للتطبيق الخاص بك.

معلومات اكثر:

Redux-Reducers المستندات الرسمية