كيفية استخدام المخفض مع React context API؟
Dec 15, 2025
مرحبًا يا من هناك! إذا كنت مهتمًا بتطوير React، فمن المحتمل أنك سمعت عن React context API والمخفضات. يمكن أن يؤدي الجمع بينهما إلى تغيير قواعد اللعبة لإدارة الحالة في تطبيقات React الخاصة بك. وتخمين ماذا؟ أنا أحد موردي المخفضات، لذا لدي بعض الأفكار لمشاركتها حول كيفية استخدام المخفض مع React context API.
أولاً، دعونا نتعرف سريعًا على ماهية React context API والمخفضات. تعد واجهة برمجة تطبيقات سياق التفاعل طريقة لمشاركة البيانات بين المكونات دون الحاجة إلى تمرير الخاصيات يدويًا عبر كل مستوى من مستويات شجرة المكونات. إنه مفيد للغاية عندما يكون لديك بيانات تحتاج مكونات متعددة إلى الوصول إليها، مثل حالة مصادقة المستخدم أو إعدادات السمة.
من ناحية أخرى، المخفض هو وظيفة خالصة تأخذ الحالة الحالية والإجراء كمدخلات وتعيد حالة جديدة. إنه مفهوم أساسي في Redux، ولكن يمكنك أيضًا استخدامه بشكل مستقل في React. تعتبر المخفضات رائعة لإدارة تغييرات الحالة المعقدة بطريقة يمكن التنبؤ بها.
إذًا، لماذا تريد استخدام مُخفض مع React context API؟ حسنًا، تعد واجهة برمجة تطبيقات السياق رائعة لمشاركة البيانات، ولكنها لا تحتوي على طريقة مدمجة لإدارة تحديثات الحالة المعقدة. وهنا يأتي دور المخفضات. باستخدام مخفض مع واجهة برمجة تطبيقات السياق، يمكنك الحصول على مكان مركزي لإدارة تغييرات الحالة ومشاركة تلك الحالة عبر تطبيقك.
لنبدأ بإعداد الهيكل الأساسي. أولاً، سوف تحتاج إلى إنشاء سياق. في React، يمكنك القيام بذلك باستخدام الأمرcreateContextوظيفة. هنا مثال:
import React, { createContext, useReducer } from'react'; // إنشاء سياق const MyContext = createContext(); // تحديد وظيفة المخفض const المخفض = (state, action) => { Switch (action.type) { case 'INCREMENT': return { count:state.count + 1 }; الحالة 'DECREMENT': return {count:state.count - 1}; الافتراضي: حالة الإرجاع؛ } }; // إنشاء مكون موفر const MyProvider = ({ children }) => { const [state, Submit] = useReducer(reducer, { count: 0 }); return ( <MyContext.Provider value={{state, Submit }}> {children} </MyContext.Provider> ); }; تصدير {MyContext، MyProvider}؛
في هذا المثال، نقوم أولاً بإنشاء سياق يسمىMyContext. ثم نحدد وظيفة المخفض التي يمكنها التعامل مع نوعين من الإجراءات:زيادةوإنقاص. الMyProviderيستخدم المكونuseReducerربط لإدارة الحالة ووظيفة الإرسال. يتم بعد ذلك تمرير الحالة والإرسال كقيمة إلى ملفMyContext.Provider.
الآن، دعونا نرى كيفية استخدام هذا السياق في مكون. لنفترض أن لديك مكونًا بسيطًا يريد استخدام إجراءات الحالة والإرسال. وإليك كيف يمكنك القيام بذلك:
استيراد React، { useContext } من "react"؛ استيراد {MyContext } من './yourContextFile'؛ const MyComponent = () => { const { الحالة، الإرسال } = useContext(MyContext); return ( <div> <p>العدد: {state.count}</p> <button onClick={() => الإرسال({ type: 'INCREMENT' })}>الزيادة</button> <button onClick={() => الإرسال({ type: 'DECREMENT' })}>Decrement</button> </div> ); }; تصدير MyComponent الافتراضي؛
فيMyComponent، نستخدمuseContextربط للوصول إلى وظيفة الحالة والإرسال من السياق. يمكننا بعد ذلك عرض الحالة وإجراءات الإرسال لتحديثها.
أحد الأشياء الرائعة في استخدام المخفض مع React context API هو أنه يجعل التعليمات البرمجية الخاصة بك أكثر قابلية للصيانة. نظرًا لأنه يتم التعامل مع جميع تغييرات الحالة في مكان واحد (المخفض)، فمن الأسهل فهم كيفية تحديث الحالة. وأيضًا، نظرًا لأن الحالة مشتركة من خلال السياق، فلا داعي للقلق بشأن حفر الدعامات.
الآن، دعونا نتحدث عن بعض حالات الاستخدام في العالم الحقيقي. إذا كنت تقوم بإنشاء تطبيق للتجارة الإلكترونية، فقد يكون لديك عربة تسوق. يمكن إدارة حالة عربة التسوق باستخدام المخفض ومشاركتها عبر مكونات مختلفة مثل قائمة المنتجات وملخص سلة التسوق وصفحة الخروج.
دعونا نلقي نظرة على مثال مخفض أكثر تعقيدًا لعربة التسوق:
const cartReducer = (state, action) => { Switch (action.type) { case 'ADD_TO_CART': return { ...state, items: [...state.items, action.payload] }; الحالة 'REMOVE_FROM_CART': return { ...state, items:state.items.filter(item => item.id!== action.payload.id) }; الحالة 'UPDATE_QUANTITY': return { ...state, items:state.items.map(item => item.id === action.payload.id ? {...item,quantity: action.payload.quantity } : item ) }; الافتراضي: حالة الإرجاع؛ } };
يمكن لهذا المخفض التعامل مع إضافة عناصر إلى عربة التسوق، وإزالة العناصر من عربة التسوق، وتحديث كمية العناصر الموجودة في عربة التسوق.
باعتباري موردًا للمخفضات، أقدم مجموعة متنوعة من المخفضات عالية الجودة لحالات الاستخدام المختلفة. على سبيل المثال، إذا كنت تعمل في مشروع يتطلب مواد عالية القوة، فقد تكون مهتمًا بمنتجاتناالتيتانيوم Gr7 المخفض. إنه مصنوع من التيتانيوم عالي الجودة ويمكنه تحمل الظروف القاسية. وإذا كنت بحاجة إلى مخفض ذو مقاومة كيميائية محددة، فلدينامخفض الزركونيوميمكن أن يكون الحل الأمثل.
إذا كنت تتطلع إلى تنفيذ مخفض باستخدام React context API في مشروعك وتحتاج إلى بعض المخفضات الموثوقة، فلا تتردد في التواصل معنا. سواء كنت مطورًا صغير الحجم أو مؤسسة كبيرة الحجم، فلدينا الحلول المناسبة لك. يمكننا تزويدك بالمواصفات التفصيلية والدعم لضمان حصولك على أقصى استفادة من مخفضاتنا.
اتصل بنا للحصول على مزيد من المعلومات وبدء عملية الشراء. نحن هنا لمساعدتك في إنشاء تطبيقات React أفضل باستخدام المخفضات المناسبة.


مراجع:
- رد الفعل على الوثائق الرسمية على واجهة API السياق
- رد فعل الوثائق الرسمية على ربط useReducer
