الـ Default مقابل الـ Named Exports
جزء من قسم Object Oriented Programming في رحلة JavaScript على Coddy — الدرس 10 من 56.
في وحدات JavaScript، لديك طريقتان رئيسيتان لتصدير الكود الخاص بك: التصديرات المسماة (named exports) والتصديرات الافتراضية (default exports).
تسمح لك التصديرات المسماة (Named Exports) بتصدير قيم متعددة من وحدة (module):
// math.js
export function add(a, b) {
return a + b;
}
export function subtract(a, b) {
return a - b;
}عند استيراد الصادرات المسماة (named exports)، يجب عليك استخدام نفس الأسماء تماماً داخل أقواس معقوفة:
// app.js
import { add, subtract } from './math.js';
console.log(add(5, 3)); // 8
console.log(subtract(10, 4)); // 6إذا كنت بحاجة إلى إعادة تسمية استيراد مسمى (named import)، فاستخدم الكلمة المفتاحية as لإنشاء اسم مستعار:
// app.js
import { add as sum, subtract as minus } from './math.js';
console.log(sum(5, 3)); // 8
console.log(minus(10, 4)); // 6تسمح لك عمليات التصدير الافتراضية (Default Exports) بتصدير قيمة رئيسية واحدة من وحدة برمجية (module):
// user.js
const user = {
name: 'John',
age: 30
};
export default user;عند استيراد تصدير افتراضي (default export)، يمكنك استخدام أي اسم تريده بدون أقواس معقوفة:
// app.js
import person from './user.js';
console.log(person.name); // 'John'متى نستخدم أياً منهما؟ استخدم named exports عندما توفر الوحدة (module) أدوات مساعدة متعددة ذات صلة (على سبيل المثال، مجموعة من الدوال المساعدة). استخدم default export عندما يكون للوحدة غرض أساسي واحد أو قيمة رئيسية واحدة (على سبيل المثال، class، أو component، أو configuration object).
يمكنك الجمع بين كلا نوعي عمليات التصدير في وحدة برمجية واحدة:
// vehicle.js
export const wheels = 4;
export const doors = 4;
const car = {
brand: 'Toyota',
model: 'Corolla'
};
export default car;وقم باستيرادهم معاً:
// app.js
import myCar, { wheels, doors } from './vehicle.js';
console.log(myCar.brand); // 'Toyota'
console.log(wheels); // 4التحدي
سهللديك ملفان. مهمتك هي إعداد عمليات التصدير (exports) في calculator.js وعمليات الاستيراد (imports) في main.js.
- في
calculator.js: قم بتصديرcalculateكـ default وsquareكـ named - في
main.js: قم باستيراد كلتا الدالتين بشكل صحيح
ستتحقق الاختبارات مما يلي:
- استخدام التصدير الافتراضي (Default export) لـ
calculate - استخدام التصدير المسمى (Named export) لـ
square - كلا الاستيرادين يعملان بشكل صحيح
جرّب بنفسك
// TODO: استيراد كلتا الدالتين هنا من calculator.js
// اختبار
console.log(calculate(10, 5, '+')); // يجب أن تكون النتيجة 15
console.log(square(4)); // يجب أن تكون النتيجة 16يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Object Oriented Programming
1الكائنات والكلمة المفتاحية this
مراجعة سريعة: الكائناتإضافة Methods إلى الكائناتفهم الكلمة المفتاحية thisConstructor Functionsالكلمة المفتاحية newتحدي المراجعة7الوراثة والكلمة المفتاحية extends
الوراثةعلاقة "is-a"الكلمة المفتاحية extendsالدالة super()وراثة الخصائص والوظائفتحدي المراجعة2تنظيم الكود
ما هي الـ Modules؟التصدير باستخدام exportالاستيراد باستخدام importالـ Default مقابل الـ Named Exports8تنظيم كود OOP
تنظيم الـ Classes في Modules11مشروع: مصيّر الأشكال
إعداد: فئة Shape والتصديروراثة فئة Circleإعادة التعريف ودالة المساحةعداد الأشكال Static