شرح الدالة createContext في React
ما هو createContext
؟
createContext
يسمح لك بإنشاء سياق (context) يمكن للمكونات توفيره أو قراءته.
كيفية الاستخدام
إنشاء السياق
تقوم بإنشاء السياق باستخدام createContext
خارج أي مكون.
المعاملات
- defaultValue: القيمة الافتراضية التي تريد أن يكون للسياق عندما لا يوجد مزود سياق مطابق في الشجرة فوق المكون الذي يقرأ السياق. إذا لم يكن لديك أي قيمة افتراضية ذات معنى، يمكنك تحديد
null
.
العائدات
createContext
يعيد كائن سياق. هذا الكائن لا يحمل أي معلومات بحد ذاته، بل يمثل السياق الذي تقرأه أو توفره المكونات الأخرى.
خصائص كائن السياق
- SomeContext.Provider: يسمح لك بتوفير قيمة السياق للمكونات.
- SomeContext.Consumer: طريقة بديلة ونادرًا ما تُستخدم لقراءة قيمة السياق.
استخدام SomeContext.Provider
لتحديد قيمة السياق لجميع المكونات داخل المزود:
استخدام SomeContext.Consumer
قبل وجود useContext
، كانت هناك طريقة قديمة لقراءة السياق:
الطريقة الموصى بها باستخدام useContext
الطريقة الحديثة والمفضلة لقراءة السياق هي باستخدام useContext
:
استيراد وتصدير السياق من ملف
يمكنك تنظيم الكود الخاص بك عن طريق استيراد وتصدير السياق من ملف منفصل:
ثم يمكنك استيراده في الملفات الأخرى:
استخدام createContext
createContext
يسمح للمكونات بتمرير المعلومات بعمق دون الحاجة إلى تمرير props بشكل صريح.
إنشاء السياق
قم باستدعاء createContext
خارج أي مكونات لإنشاء سياق واحد أو أكثر.
قراءة السياق باستخدام useContext
يمكن للمكونات قراءة السياق عن طريق تمريره إلى useContext
:
توفير قيم ديناميكية للسياق
السياق يكون مفيدًا لأنه يمكنك توفير قيم ديناميكية من مكوناتك:
الآن، مكون Page
وأي مكونات داخله، بغض النظر عن عمقها، ستتمكن من “رؤية” قيم السياق الممررة. إذا تغيرت قيم السياق الممررة، سيقوم React بإعادة تصيير المكونات التي تقرأ السياق أيضًا.
استيراد وتصدير السياق من ملف
غالبًا ما تحتاج المكونات في ملفات مختلفة إلى الوصول إلى نفس السياق. لهذا السبب، من الشائع إعلان السياقات في ملف منفصل. ثم يمكنك استخدام جملة export
لجعل السياق متاحًا للملفات الأخرى:
ثم يمكن للمكونات المعلنة في ملفات أخرى استخدام جملة import
لقراءة أو توفير هذا السياق:
لا أستطيع العثور على طريقة لتغيير قيمة السياق
الكود مثل هذا يحدد قيمة السياق الافتراضية:
هذه القيمة لا تتغير أبدًا. يستخدم React هذه القيمة فقط كملاذ أخير إذا لم يتمكن من العثور على مزود مطابق أعلاه.
لتغيير السياق بمرور الوقت، أضف حالة (state) ولف المكونات في مزود سياق
المرجع :
https://react.dev/reference/react/createContext
تعليقات
إرسال تعليق