جافاسكربتالتعامل مع الموديول
- مفهوم الموديول
- طريقة إنشاء موديول
- طريقة تضمين محتوى الموديول
- تصدير قيمة إفتراضية من الموديول
- التصدير بأسماء مستعارة
مفهوم الموديول
إبتداءاً من الإصدار ES6 أصبح بالإمكان توزيع كود المشروع على عدة ملفات بدلاً من كتابته كله في ملف واحد.
الملف الذي يحتوي على الكود يسمى موديول ( Module ) و إمتداده يكون .js
لأنه يحتوي على كود جافاسكربت فقط.
فكرة الموديول توزيع الكود بشكل منظم و جعله متاح لإعادة الإستخدام بشكل سهل حيث أن وضع الكود في موديول يتيح لك نقله و إستخدامه كلما إحتجت إليه. و الأهم من ذلك أنه يتيح لك تضمين محتوى المودويل كما هو أو تضمين أجزاء محددة منه.
في هذا الدرس ستتعلم كيفية إنشاء موديول جديد، تحديد المحتوى الذي يمكن تصديره منه بالإضافة إلى كيفية تضمين محتواه كاملاً و تضمين أجزاء محددة منه.
طريقة إنشاء موديول
إفتراضياً، الأشياء التي يتم وضعها في الموديول لا يمكن الوصول إليها لاحقاً ما لم يتم وضع الكلمة المفتاحية export قبلها.
إذاً الموديول يمكن أن يحتوي على أشياء يمكن تضمينها في الكود و أشياء لا يمكن.
الآن سنقوم بإنشاء ملف جافاسكربت إسمه messages.js
و الذي سيمثل موديول خاص بالرسائل.
في هذا الموديول سنضع ما يلي:
- متغير إسمه domain يحتوي على إسم الموقع.
- دالة إسمها loginMessage() تقوم بإرجاع رسالة ترحيب.
- دالة إسمها logoutMessage() تقوم بإرجاع رسالة وداع.
طريقة تضمين محتوى الموديول
محتوى الموديول القابل للتصدير يمكن تضمينه كما هو أو تضمين أجزاء محددة منه فقط.
بغض النظر عن ما سيتم تضمينه من الموديول فإننا نستخدم الكلمة المفتاحية import لأجل ذلك.
تحديد نوع السكربت
في حال كان سيتم تضمين الموديول في صفحة ويب بواسطة الوسم <script> فيجب أن يتم تحديد نوعه كموديول كما يلي.
أي شيء يتم تضمينه من الموديول نتعامل معه بشكل عادي جداً و كأنه تم تعريفه في ذات المكان.
تضمين أشياء محددة من الموديول
لتضمين أشياء محددة في الموديول عليك مناداتها بإسمها.
في المثال التالي قمنا بتضمين المتغير domain و الدالة logoutMessage() من الموديول messages.js
و من ثم قمنا باستخدامهما.
مثال
تضمين كل محتوى الموديول
لتضمين كل المحتوى المعد للتصدير في الموديول نستخدم رمز النجمة *
يليه الكلمة المفتاحية as
يليه أي إسم ليمثل الموديول.
من بعدها يمكن الوصول لما تحتويه الموديول عن طريق الإسم الذي تم وضعه بعد النجمة.
في المثال التالي قمنا بتضمين كل محتوى الموديول messages.js
و من ثم قمنا باستدعاء الدوال الموجودة فيه.
مثال
تصدير قيمة إفتراضية من الموديول
يمكنك إضافة الكلمة المفتاحية default على شيء واحد من الأشياء الموجودة في الموديول سواء متغير أو دالة، و ذلك لإرجاع قيمته كقيمة إفتراضية منه.
فيما يلي قمنا ببناء موديول إسمه company.js
فيه متغيرين هما name و description.
و في النهاية قمنا بتحديد أن قيمة المتغير name هي القيمة الإفتراضية في الموديول.
الحصول على قيمة الموديول الإفتراضية
للحصول على القيمة الإفتراضية من الموديول يجب تمرير إسم بعد الكلمة import و قبل الرمزين { }.
في المثال التالي قمنا بتصدير القيمة الإفتراضية في الموديول company.js
و تخزينها في متغير إسمه x و من بعدها قمنا أيضاً بتصدير المتغيرات name و description الموجودة فيه.
ملاحظة: هنا قيمة x ستكون هي نفسها قيمة المتغير الإفتراضي name و التي تساوي 'Harmash'.
مثال
التصدير بأسماء مستعارة
إذا كانت أسماء الأشياء التي ستقوم بتصديرها من الموديول ستتعارض مع أسماء الأشياء الموجودة أساساً في الكود الخاص بك فيمكنك استخدام الكلمة المفتاحية as لمنحها أسماء مستعارة و بذلك تحل المشكلة.
في المثال التالي قمنا بتصدير المتغير name بإسم domainName من الموديول company.js
.
بعدها قمنا بإنشاء متغير عادي إسمه name و لاحظ أن ذلك لم يسبب ذلك أي تعارض في الأسماء.