استيراد وتصدير المكونات
تكمن سحر المكونات في إمكانية إعادة استخدامها: يمكنك إنشاء مكونات تتكون من مكونات أخرى. ولكن مع تداخل المزيد والمزيد من المكونات، غالبًا ما يكون من المنطقي البدء في تقسيمها إلى ملفات مختلفة. وهذا يتيح لك الحفاظ على ملفاتك سهلة المسح وإعادة استخدام المكونات في أماكن أكثر.
سوف تتعلم
- ما هو ملف المكون الجذري
- كيفية استيراد وتصدير مكون
- متى تستخدم عمليات الاستيراد والتصدير الافتراضية والمسمّاة
- كيفية استيراد وتصدير مكونات متعددة من ملف واحد
- كيفية تقسيم المكونات إلى ملفات متعددة
ملف المكون الجذري
فيمكونك الأول، قمت بإنشاء مكونProfile ومكون Galleryالذي يعرضه:
هذه المكونات موجودة حاليًا فيملف مكون جذري،يُسمىApp.jsفي هذا المثال. اعتمادًا على إعدادك، قد يكون مكونك الجذري في ملف آخر. إذا كنت تستخدم إطار عمل يعتمد على التوجيه القائم على الملفات، مثل Next.js، فسيكون مكونك الجذري مختلفًا لكل صفحة.
تصدير واستيراد مكون
ماذا لو أردت تغيير شاشة الوصول في المستقبل ووضع قائمة بكتب العلوم هناك؟ أو نقل جميع الملفات الشخصية إلى مكان آخر؟ من المنطقي نقلGallery و Profileخارج ملف المكون الجذري. وهذا سيجعلهما أكثر نمطية وإمكانية لإعادة الاستخدام في ملفات أخرى. يمكنك نقل مكون في ثلاث خطوات:
- أنشئملف JS جديدًا لوضع المكونات فيه.
- صدّرمكون الدالة الخاص بك من ذلك الملف (باستخدام عمليات التصديرالافتراضيةأوالمسمّاة).
- استوردالمكون في الملف حيث ستستخدمه (باستخدام التقنية المناسبة لاستيراد عمليات التصديرالافتراضيةأوالمسمّاة).
هنا تم نقل كل منProfile و Gallery خارج App.jsإلى ملف جديد يُسمىGallery.js. الآن يمكنك تغييرApp.jsلاستيرادGalleryمنGallery.js:
لاحظ كيف تم تقسيم هذا المثال إلى ملفي مكونين الآن:
Gallery.js:- يُعرّف مكون
Profileوالذي يُستخدم فقط داخل نفس الملف ولا يتم تصديره. - يُصدّر مكون
Galleryكـ تصدير افتراضي.
- يُعرّف مكون
App.js:- يستورد
Galleryكـاستيراد افتراضيمنGallery.js. - يُصدّر مكون الجذر
Appكـ تصدير افتراضي.
- يستورد
ملاحظة
قد تواجه ملفات تحذف امتداد الملف.jsكما يلي:
سيعمل كل من'./Gallery.js'أو'./Gallery'مع React، على الرغم من أن الأول أقرب إلى طريقة عملوحدات ES الأصلية.
تصدير واستيراد مكونات متعددة من نفس الملف
ماذا لو أردت عرض مكونProfileواحد فقط بدلاً من معرض؟ يمكنك أيضًا تصدير مكونProfile. لكن Gallery.jsيحتوي بالفعل علىتصدير افتراضي، ولا يمكن أن يكون لديكتصديرين افتراضيين. يمكنك إنشاء ملف جديد بتصدير افتراضي، أو يمكنك إضافةتصدير مُسمى لـ Profile.يمكن أن يحتوي الملف على تصدير افتراضي واحد فقط، ولكن يمكن أن يحتوي على العديد من التصديرات المُسماة!
ملاحظة
لتقليل الارتباك المحتمل بين التصدير الافتراضي والمُسمى، تختار بعض الفرق الالتزام بنمط واحد فقط (افتراضي أو مُسمى)، أو تجنب مزجهما في ملف واحد. افعل ما يناسبك بشكل أفضل!
أولاً،صدّرProfileمنGallery.jsباستخدام تصدير مُسمى (بدون كلمةdefault):
ثم،استوردProfileمنGallery.jsإلىApp.jsباستخدام استيراد مسمى (باستخدام الأقواس المعقوفة):
أخيرًا،اعرض<Profile />من مكونApp:
الآن يحتويGallery.jsعلى تصديرين: تصدير افتراضيGalleryوتصدير مسمىProfile. App.jsيستورد كليهما. جرب تعديل<Profile />إلى<Gallery />والعودة في هذا المثال:
أنت الآن تستخدم مزيجًا من التصديرات الافتراضية والمسمّاة:
Gallery.js:- يصدّر مكون
Profileكـ تصدير مسمى باسمProfile. - يصدّر مكون
Galleryكـ تصدير افتراضي.
- يصدّر مكون
App.js:- يستورد
Profileكـاستيراد مسمى باسمProfileمنGallery.js. - يستورد
Galleryكـاستيراد افتراضيمنGallery.js. - يصدّر مكون الجذر
Appكـ تصدير افتراضي.
- يستورد
ملخص
في هذه الصفحة تعلمت:
- ما هو ملف مكون الجذر
- كيفية استيراد وتصدير مكون
- متى وكيف تستخدم الاستيرادات والتصديرات الافتراضية والمسمّاة
- كيفية تصدير عدة مكونات من نفس الملف
جرب بعض التحديات
Challenge 1 of 1:قسّم المكونات أكثر #
حاليًا، Gallery.js يقوم بتصدير كل من Profile و Gallery، مما يسبب بعض الارتباك.
انقل مكون Profile إلى ملفه الخاص Profile.js، ثم غيّر مكون App ليُصيِّر كلًا من <Profile /> و <Gallery /> واحدًا تلو الآخر.
يمكنك استخدام تصدير افتراضي أو تصدير مُسمّى لـ Profile، ولكن تأكد من استخدام صيغة الاستيراد المناسبة في كل من App.js و Gallery.js! يمكنك الرجوع إلى الجدول من القسم المتعمق أعلاه:
بعد أن تجعله يعمل بنوع واحد من التصديرات، اجعله يعمل بالنوع الآخر.
