استيراد ديناميكي في جافا سكريبت

في بداية العام الماضي ، تم اقتراح إدخال استيراد ديناميكي في JavaScript. إذا لم يكن أي شخص يعرف ذلك ، فإن الاستيراد الثابت فقط معتمد أصليًا في JavaScript ، وهناك أسباب لذلك ، ولكن هذا موضوع لمناقشة أخرى. تم تنفيذ الاقتراح وإدراجه في قائمة تحديثات ECMAScript القادمة. يدعم Google Chrome مع الإصدار 63 هذه الميزة بالفعل. سأخبركم قليلاً عن ماهية وأين يمكن أن يكون مفيدًا.


يتم استخدام الاستيراد الديناميكي بنفس طريقة الاستيراد الثابت ، لكن له عدة اختلافات رئيسية:


يشبه الاستيراد الديناميكي النحوي استدعاء دالة: import ('path / to / module.js')؛


يُرجع الأمر import ('path / to / file.js') Promise ، والذي سينتقل إلى الحالة المستوفاة بعد سحب الوحدة النمطية نفسها وتثبيتها مباشرةً ، وكذلك جميع تبعياتها. وهذا يعني أنه يمكننا كتابة مثل هذا:


import('path/to/module.js') .then(module => { module.loadPageInto(main); }) .catch(err => { main.textContent = err.message; }); 

أو حتى مثل هذا:


 const module = await import('path/to/module.js'); 

ملاحظة مهمة: على الرغم من أن عملية الاستيراد الديناميكية هي بناء جملة وتشبه استدعاء دالة import () ، فإنها ليست دالة. لا يتم توريثه من Function.prototype ، مما يعني أنه لا يمكن استدعاءه عبر مكالمة أو تطبيق.


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


يمكنك قراءة المزيد ونرى هنا:
https://github.com/tc39/proposal-dynamic-import
https://developers.google.com/web/updates/2017/11/dynamic-import
https://www.youtube.com/watch؟v=eg8eLH52d4s&t=31s

Source: https://habr.com/ru/post/ar455200/


All Articles