مشاركة القيم بين المكونات في React
نستخدم الدالة createContext() لإنشاء مكوّن يمكن مشاركة قيمته مع أي مكوّن يتم وضعه بداخله.
بعدها، في أي مكوّن موجود بداخله نستطيع استخدام الدالة useContext() للحصول على قيمته.
هذه الدالة هي من ضمن دوال الهووكس ( Hooks ) التي يمكن استخدامها في المكوّن المبني بأسلوب Function Component.
طريقة تضمينهما
حتى تتمكن من استخدام الدالة createContext() يجب تضمينها أولاً كما يلي.
مثال
import { createContext } from "react";
حتى تتمكن من استخدام الدالة useContext() يجب تضمينها أولاً كما يلي.
مثال
import { useContext } from "react";
الشكل العام لاستخدامهما
عند استخدام الدالة createContext() لإنشاء مكوّن يمكن مشاركة قيمه مع أبنائه، فإنه يتم ربط القيمة التي سيتم مشاركتها من خلاله بالدالة useState() ليكون بالإمكان تحديثها لدى جميع أبنائه في حال تغيّرت.
مثال
// المكوّن الذي سيتم مشاركة قيمته يتم تعريفه خارج المكوّن الذي سيتم تضمينه فيه كما يلي export const SomeContext = createContext(); // <SomeContext> بعدها يتم تعريف المكوّن الذي سيقوم باستخدام المكوّن function Component() { // ليكون بالإمكان تحديث قيمته لاحقاً عند الجميع State هنا يتم ربط المتغير الذي سيتم مشاركة قيمته بــ const [someState, setSomeState] = useState(); // someState و تمرير قيمة المتغير <SomeContext> هنا يتم وضع المكوّن // value التي سيتم مشاركتها مع أبنائه عن طريقة الخاصية return ( <SomeContext.Provider value={someState}> {/* هنا يتم وضع المكونات الداخلية التي يمكنها الوصول useContext() عن طريق الدالة someState لقيمة */} </SomeContext.Provider> ); }
عند استخدام الدالة useContext() فإنه بكل بساطة يتم تمرير إسم المكوّن الذي يحتوي على القيمة المشتركة لها فقط.
مثال
function ChildComponent() { // value سيتم وضعها في المتغير <SomeContext> القيمة الموجودة في المكوّن const value = useContext(SomeContext); // كما يلي value و بعدها يمكنك عرض قيمة المتغير return ( <div>{ value }</div> ); }
لا تقلق إذا وجدت الشرح الآن مبهم قليلاً لأنك ستفهم ذلك لاحقاً من الأمثلة.