"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > مقدمة إلى الوحدات النمطية في React: وحدات AMD وCommonJS

مقدمة إلى الوحدات النمطية في React: وحدات AMD وCommonJS

تم النشر بتاريخ 2024-11-11
تصفح:154

Uvod u Modularizaciju u React-u: AMD i CommonJS modularizacija

تعد الوحدات قلب تطوير التطبيقات الحديثة، خاصة عند العمل مع مكتبات مثل React. يعد فهم الوحدات النمطية وأساليب الوحدات المختلفة مثل AMD وCommonJS أمرًا أساسيًا لتطوير تعليمات برمجية فعالة وقابلة للصيانة وقابلة للتطوير. في منشور المدونة هذا، سنستكشف كيفية عمل الوحدات النمطية في تطبيقات React، وسبب أهميتها، وكيف تساهم أساليب AMD وCommonJS في الوحدات النمطية في كفاءة تطبيقات JavaScript.

لماذا يعد التقسيم مفتاحًا لتطبيقات React؟

عند العمل مع React، تتيح لنا الوحدة النمطية تقسيم واجهة المستخدم الخاصة بنا إلى أجزاء أصغر - مكونات - تعمل كوحدات مستقلة. في جوهر الأمر، يمثل كل مكون جزءًا من واجهة المستخدم بأنماطه ووظائفه وتبعياته الخاصة، مما يجعل التطبيق أكثر شفافية ويسهل تطويره وصيانته.

تساعد الوحدات النمطية أيضًا على تقليل مخاطر التعارض بين الأجزاء المختلفة من التعليمات البرمجية، حيث يمكن لكل مكون أن يعمل بشكل مستقل، باستخدام الوحدات النمطية والموارد الخاصة به. يقودنا هذا إلى أهمية النمطية في تطبيقات React: يمكن تعريف كل مكون كوحدة منفصلة، ​​مما يبسط إدارة التبعية ويسمح للعمل الجماعي بسلاسة ودون تشتيت الانتباه.

هيكل الوحدة في React

تتبع تطبيقات React عادةً بنية المجلد التي تجمع المكونات والموارد ذات الصلة. لنفترض أننا نبني تطبيقًا بسيطًا يحتوي على بضع صفحات مثل الصفحة الرئيسية، وحول، وجهات الاتصال. بدلاً من تحديد جميع الصفحات في ملف واحد، يمكننا تقسيمها بحيث يمثل كل ملف مكونًا واحدًا. فيما يلي مثال لما سيبدو عليه:

// Home.js
export default function Home() {
  return 

Home Page

; } // About.js export default function About() { return

About Page

; } // Contact.js export default function Contact() { return

Contact Page

; }

عندما يتم تقسيم كل جزء من التطبيق إلى وحدات (مكونات) مستقلة، يمكننا بسهولة إعادة استخدام هذه الأجزاء في أجزاء أخرى من التطبيق. يساعد هذا الأسلوب في الحفاظ على نظافة التطبيق وسهولة صيانته وقابليته للتطوير.

وحدات AMD وCommonJS في JavaScript

في حين أن وحدات ES6 هي معيار في JavaScript الحديث وغالبًا ما تُستخدم في تطبيقات React، إلا أن هناك معايير أخرى شائعة في عالم JavaScript، مثل AMD (تعريف الوحدة غير المتزامن) و كومونجس . على الرغم من أنها ليست شائعة بشكل متساوٍ في تطبيقات React، إلا أن فهم الاختلافات بينها يمكن أن يساعد عند العمل مع مشاريع JavaScript مختلفة، خاصة تلك التي لا تعتمد على React.

CommonJS

CommonJS عبارة عن نموذج نمطي تم تطويره لبيئات JavaScript من جانب الخادم، وخاصةً لـ Node.js. يستخدم هذا المعيار Module.exports لتصدير الوحدات ويتطلب تحميلها. الميزة الرئيسية لـ CommonJS هي التزامن، مما يعني أنه يتم تحميل الوحدات بالترتيب، وهي مناسبة للبيئات من جانب الخادم حيث غالبًا ما يكون تحميل الوحدات بشكل متزامن (بالترتيب) أكثر كفاءة وأكثر توافقًا مع متطلبات الخادم.

مثال على نمطية CommonJS:

// math.js
module.exports = {
  add: (a, b) => a   b,
  subtract: (a, b) => a - b,
};

// main.js
const math = require('./math');
console.log(math.add(2, 3)); // 5

في CommonJS، نحدد كل ما هو مطلوب للوحدة باستخدام Module.exports. عندما نريد استخدام وحدة، فإننا ببساطة نطلبها. وبسبب هذه البساطة، يعد CommonJS هو المعيار الأكثر شيوعًا لمشاريع Node.js ويسمح للمطورين بمشاركة الوحدات من خلال Node Package Manager (NPM).

AMD (تعريف الوحدة غير المتزامنة)

على عكس CommonJS، يتم استخدام معيار AMD (تعريف الوحدة غير المتزامن) بشكل أساسي في تطبيقات المتصفح. وهو مصمم لتمكين تحميل الوحدة غير المتزامن، وهو أمر بالغ الأهمية لتحسين أداء المتصفح.

مع التحميل غير المتزامن، لا يتم تحميل الوحدات بالترتيب، ولكن يتم تنزيلها بالتوازي، مما يقلل وقت الانتظار ويتيح تحميل الصفحات بشكل أسرع. تستخدم AMD وظيفة التعريف لتحديد الوحدات النمطية والدالة المطلوبة لتحميلها.

مثال على نمطية AMD:

// math.js
define([], function () {
  return {
    add: function (a, b) {
      return a   b;
    },
    subtract: function (a, b) {
      return a - b;
    },
  };
});

// main.js
require(['math'], function (math) {
  console.log(math.add(2, 3)); // 5
});

تتيح AMD إمكانية الوحدات النمطية بطريقة مثالية للبيئات التي يكون فيها الأداء وسرعة تحميل الصفحة ضروريين. وبالنظر إلى أن عدم المزامنة يسمح باستخدام أكثر كفاءة لموارد المتصفح، فإن AMD تحظى بشعبية كبيرة في تطبيقات JavaScript الكبيرة التي تتطلب التحميل السريع والتفاعل.

ما هي الاختلافات الرئيسية بين وحدات CommonJS وAMD؟

  1. التطبيق: يعد CommonJS مثاليًا لتطبيقات JavaScript من جانب الخادم مثل Node.js، بينما تم تصميم AMD للتطبيقات داخل المتصفح حيث يمكن للمزامنة غير المتزامنة تحسين الأداء.

  2. التزامن : يتم تحميل وحدات CommonJS بشكل متزامن، مما يعني أن كل وحدة يتم تحميلها بدورها. من ناحية أخرى، تستخدم AMD التحميل غير المتزامن، مما يسمح للتطبيقات داخل المتصفح بالتحميل بشكل أسرع واستخدام الموارد بشكل أكثر كفاءة.

  3. التعقيد : تتطلب استخدامات CommonJS تحميل الوحدات وmodule.exports للتصدير، وهو أمر بسيط جدًا. تستخدم AMD التعريف لتعريف الوحدات النمطية والمطالبة بتحميلها، الأمر الذي قد يتطلب المزيد من التعليمات البرمجية، ولكنه يوفر المزيد من المرونة في المتصفح.

  4. التوافق : يعمل CommonJS بشكل جيد في بيئة Node.js، بينما توفر AMD مرونة أكبر في المتصفحات بسبب التحميل غير المتزامن. وهذا يجعلها مناسبة لأغراض مختلفة.

AMD وCommonJS في رد الفعل

في React، لا يتم استخدام AMD وCommonJS في كثير من الأحيان لأن وحدات ES6 (الاستيراد والتصدير) أصبحت الطريقة القياسية للنموذجية. ومع ذلك، يمكن أن يكون الإلمام بوحدات AMD وCommonJS مفيدًا عند العمل على المشاريع التي لا تعتمد على React، مثل بعض تطبيقات JavaScript القديمة أو المشاريع المستندة إلى Node.js.

خاتمة

تتيح وحدات الكود إنشاء تطبيقات قابلة للتطوير ومنظمة وفعالة. على الرغم من أن وحدات ES6 تُستخدم بشكل أساسي في React، إلا أن فهم وحدات AMD وCommonJS يمكن أن يكون مفيدًا عند العمل مع مشاريع وأدوات JavaScript مختلفة. يعد CommonJS رائعًا للتطبيقات من جانب الخادم نظرًا للتحميل المتزامن، بينما تتيح AMD تحميل الوحدات النمطية في المتصفح بشكل أسرع، مما يجعله خيارًا رائعًا لتطبيقات المتصفح.

بغض النظر عن النهج المختار، فإن النمذجة هي ممارسة أساسية في برمجة JavaScript الحديثة وتجلب العديد من التحسينات في تنظيم التطبيقات وصيانتها وأدائها.

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/jelena_petkovic/uvod-u-modularizaciju-u-react-u-amd-i-commonjs-modularizacija-28h3?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ Study_golang@163 .com لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3