২০১ 2016 সাল থেকে জাভাস্ক্রিপ্ট বিশ্বে প্রচুর উত্তীর্ণ হয়েছে, তাই আমি বিশ্বাস করি যে এই বিষয়টিতে সর্বাধিক আপডেট হওয়া তথ্য দেওয়ার সময় এসেছে। বর্তমানে ডায়নামিক আমদানির একটি বাস্তবতা আছে উভয় নোড উপর এবং ব্রাউজারে (স্থানীয়ভাবে যদি আপনি কি দেখেন না আইই সম্পর্কে, অথবা সঙ্গে Babel / প্লাগইন-সিনট্যাক্স-গতিশীল আমদানি @ যদি যত্ন না)।
সুতরাং, something.js
দুটি নামযুক্ত রফতানি এবং একটি ডিফল্ট এক্সপোর্ট সহ একটি নমুনা মডিউল বিবেচনা করুন :
export const hi = (name) => console.log(`Hi, ${name}!`)
export const bye = (name) => console.log(`Bye, ${name}!`)
export default () => console.log('Hello World!')
আমরা import()
শর্তসাপেক্ষে এটিকে সহজে এবং পরিষ্কারভাবে লোড করতে সিনট্যাক্স ব্যবহার করতে পারি :
if (somethingIsTrue) {
import('./something.js').then((module) => {
module.hi('Erick')
module.bye('Erick')
module.default()
})
}
তবে যেহেতু রিটার্নটি এক Promise
, তাই async
/ await
সিনট্যাকটিক চিনিও সম্ভব:
async imAsyncFunction () {
if (somethingIsTrue) {
const module = await import('./something.js')
module.hi('Erick')
}
}
এখন অবজেক্ট ডেস্ট্রাকচারিং অ্যাসাইনমেন্টের পাশাপাশি সম্ভাবনাগুলি সম্পর্কেও ভাবুন ! উদাহরণস্বরূপ, আমরা উত্তরের ব্যবহারের জন্য মেমরির মধ্যে নামযুক্ত রফতানীর মধ্যে কেবল একটিতে সহজেই রাখতে সক্ষম হয়েছি:
const { bye } = await import('./something.js')
bye('Erick')
অথবা হয়ত নামযুক্ত রফতানীদের মধ্যে একটি ধরুন এবং আমরা চাইলে এর অন্য কোনও নামকরণ করুন:
const { hi: hello } = await import('./something.js')
hello('Erick')
অথবা এমন কিছুর ডিফল্ট রফতানি করা ফাংশনটির নতুন নামকরণ করুন যা আরও অর্থবোধ করে:
const { default: helloWorld } = await import('./something.js')
helloWorld()
কেবলমাত্র একটি সর্বশেষ (তবে কোনও নয়) নোট: import()
একটি ফাংশন কলের মতো দেখায়, তবে এটি একটি নয় Function
। এটি একটি বিশেষ বাক্য গঠন যা কেবল বন্ধনী ব্যবহার করতে ঘটে (যা ঘটে তার সাথে সমান super()
)। সুতরাং import
কোনও পরিবর্তনশীলকে বরাদ্দ করা বা Function
প্রোটোটাইপের জিনিসগুলি ব্যবহার করা call
/ যেমন পছন্দ করা সম্ভব নয় apply
।
super
নির্দিষ্ট কল করতে ব্যবহার করুন ।