Modules

জাভাস্ক্রিপ্ট ইএস৬ (ES6) - Web Development

288

Modules ES6 এর একটি গুরুত্বপূর্ণ ফিচার, যা জাভাস্ক্রিপ্ট কোডকে ছোট, পুনঃব্যবহারযোগ্য এবং ম্যানেজযোগ্য অংশে ভাগ করতে সহায়ক। এর মাধ্যমে আপনি কোডকে আলাদা ফাইল বা ইউনিটে ভাগ করে রাখতে পারেন এবং একেকটি ফাইলকে একে অপরের সাথে সংযুক্ত (import/export) করতে পারেন।


1. মডিউলস কী?

মডিউলস হলো কোডের এমন অংশ যা নির্দিষ্ট কাজ বা কার্যকলাপ সম্পাদন করে এবং সেগুলোর মধ্যে নির্দিষ্ট ইন্টারফেস থাকে। এগুলোর মাধ্যমে আপনি কোডের বিভিন্ন অংশকে আলাদা রাখতে পারেন এবং একে অপরের সাথে যেভাবে প্রয়োজন তেমনভাবে যোগাযোগ করতে পারেন।


2. মডিউলস ব্যবহারের সুবিধা

  • কোড সংগঠিত রাখা: মডিউলস কোডকে আলাদা করে বিভিন্ন ফাইল বা ইউনিটে ভাগ করার সুবিধা দেয়, ফলে কোডটি বেশি পরিষ্কার ও পরিচালনাযোগ্য হয়।
  • পুনঃব্যবহারযোগ্য কোড: একবার তৈরি করা মডিউল অন্য প্রজেক্টেও ব্যবহার করা সম্ভব।
  • নামকরণ কনফ্লিক্ট এড়ানো: মডিউল ব্যবহারের মাধ্যমে একই নামের ভ্যারিয়েবল বা ফাংশন দুটি আলাদা জায়গায় থাকলেও কনফ্লিক্ট হবে না।
  • লোড টাইম অপটিমাইজেশন: আপনি শুধুমাত্র প্রয়োজনীয় মডিউলগুলি লোড করতে পারেন, যা কোডের লোড টাইম কমাতে সাহায্য করে।

3. মডিউল তৈরি এবং ব্যবহার

Export (Exporting a Module)

কোনো ফাইল থেকে ফাংশন, অবজেক্ট বা ভ্যারিয়েবল অন্য ফাইলে ব্যবহার করার জন্য export কিওয়ার্ড ব্যবহার করা হয়।

  • Named Export: একাধিক এক্সপোর্ট করা যেতে পারে।
// math.js
export const sum = (a, b) => a + b;
export const multiply = (a, b) => a * b;
  • Default Export: একটি একক এক্সপোর্ট করতে default কিওয়ার্ড ব্যবহার করা হয়।
// math.js
const divide = (a, b) => a / b;
export default divide;

Import (Importing a Module)

এক্সপোর্ট করা মডিউল অন্য ফাইলে import কিওয়ার্ড ব্যবহার করে আনা হয়।

  • Named Import: একাধিক মডিউল import করা যায়।
// app.js
import { sum, multiply } from './math';

console.log(sum(2, 3));  // 5
console.log(multiply(2, 3));  // 6
  • Default Import: যেকোনো একটি ডিফল্ট এক্সপোর্ট আনা হয়।
// app.js
import divide from './math';

console.log(divide(6, 3));  // 2
  • Renaming Imports: আপনি import করার সময় নাম পরিবর্তন করতে পারেন, যাতে কোড আরও পরিষ্কার হয়।
// app.js
import { sum as add, multiply as multiplyNumbers } from './math';

console.log(add(2, 3));  // 5
console.log(multiplyNumbers(2, 3));  // 6

4. একসাথে Export এবং Import

একই ফাইলে একাধিক এক্সপোর্ট ও ইমপোর্ট করা সম্ভব। এটি কোডের পুনঃব্যবহারযোগ্যতা এবং মডুলারিটি বাড়ায়।

// utils.js
export const greet = (name) => `Hello, ${name}`;
export const farewell = (name) => `Goodbye, ${name}`;
// app.js
import { greet, farewell } from './utils';

console.log(greet('Alice'));  // Hello, Alice
console.log(farewell('Bob'));  // Goodbye, Bob

5. মডিউল ফাইল এক্সটেনশন

ES6 মডিউলস সাধারণত .js এক্সটেনশন ব্যবহার করে, তবে type="module" অ্যাট্রিবিউটের মাধ্যমে মডিউল সাপোর্ট করতে HTML ফাইলেও ব্যবহৃত হতে পারে।

উদাহরণ:

<script type="module" src="app.js"></script>

এটি মডিউল ফাইলগুলোকে ব্রাউজারে সঠিকভাবে চালাতে সক্ষম করে।


6. ডাইনামিক ইম্পোর্ট (Dynamic Import)

ES6 মডিউলস এ ডাইনামিক ইম্পোর্টের মাধ্যমে আপনি runtime এ মডিউল লোড করতে পারেন। এটি তখনই কার্যকর হবে যখন সেই মডিউলটির প্রয়োজন হবে, যেটি অ্যাসিনক্রোনাস অপারেশন হিসেবে কাজ করে।

// app.js
async function loadModule() {
  const math = await import('./math.js');
  console.log(math.sum(2, 3));  // 5
}

loadModule();

এটি কোডের লোডিং সময় অপটিমাইজ করতে সাহায্য করে, কারণ মডিউলটি শুধুমাত্র যখন প্রয়োজন হবে তখনই লোড হবে।


7. মডিউল ভার্সনিং (Module Versioning)

মডিউল ভার্সনিং একটি গুরুত্বপূর্ণ ধারণা, যেখানে বিভিন্ন ভার্সনের কোডগুলি একসাথে ব্যবহৃত হতে পারে এবং প্রতিটি ভার্সনের ফিচার ও বাগ সংশোধন পৃথক থাকে।

মডিউল ভার্সনিং সাধারণত প্যাকেজ ম্যানেজার (যেমন npm বা yarn) এর মাধ্যমে পরিচালিত হয়।


8. মডিউলস এবং ব্রাউজার সাপোর্ট

প্রথমদিকে, ES6 মডিউল সমর্থন ছিল না বেশিরভাগ পুরনো ব্রাউজারে, তবে বর্তমানে সব জনপ্রিয় ব্রাউজারই ES6 মডিউল সাপোর্ট করে।

যদি পুরনো ব্রাউজারে মডিউল ব্যবহার করতে হয়, তাহলে Babel বা অন্য কোনো ট্রান্সপাইলার ব্যবহার করে মডিউল কনভার্ট করা যেতে পারে।


সারাংশ

ES6 মডিউলস import এবং export কিওয়ার্ডের মাধ্যমে কোডের আলাদা ইউনিটে ভাগ হয়ে ব্যবহৃত হয়। এটি কোডকে পুনঃব্যবহারযোগ্য, সংগঠিত এবং রক্ষণাবেক্ষণযোগ্য করে তোলে। ডিফল্ট এক্সপোর্ট, নামযুক্ত এক্সপোর্ট এবং ডাইনামিক ইম্পোর্টের মতো ফিচার কোড লেখার সময় আরও ফ্লেক্সিবিলিটি এবং কার্যকারিতা প্রদান করে।

Content added By

ES6 Modules (ECMAScript Modules) ES6 (ECMAScript 2015) এ প্রবর্তিত একটি নতুন ফিচার, যা জাভাস্ক্রিপ্ট কোডের মডুলারাইজেশনকে সহজ এবং কার্যকরী করে তোলে। এর মাধ্যমে আপনি কোডকে ছোট ছোট অংশে ভাগ করতে পারেন, এবং সেই অংশগুলোকে অন্য জায়গায় ব্যবহার করার জন্য import এবং export কিওয়ার্ডের মাধ্যমে একে অপরের সাথে শেয়ার করতে পারেন।


ES6 Modules এর মূল ধারণা

ES6 Modules কোডের পুনরায় ব্যবহারযোগ্যতা (reusability) এবং ম্যানেজমেন্ট সহজ করে তোলে। একটি মডিউল সাধারণত একটি ফাইল, যেখানে আপনি কেবল প্রয়োজনীয় কোড অংশই (যেমন ফাংশন, ক্লাস, কনস্ট্যান্ট, ভ্যারিয়েবল) রপ্তানি (export) করতে পারেন এবং অন্য ফাইলে (মডিউলে) সেগুলো আমদানি (import) করতে পারেন।


Modules এর কাজ করার পদ্ধতি

  1. Export (রপ্তানি): যেকোনো ভ্যারিয়েবল, ফাংশন বা ক্লাসকে অন্য ফাইলে ব্যবহার করার জন্য export কিওয়ার্ড ব্যবহার করে রপ্তানি করতে হয়।

    উদাহরণ:

    // file1.js
    const name = "John";
    function greet() {
      console.log("Hello, " + name);
    }
    
    export { name, greet };  // রপ্তানি (export) করা হচ্ছে
    

    এখানে, name এবং greet() ফাংশনটি file1.js থেকে রপ্তানি করা হয়েছে।

  2. Import (আমদানি): অন্য মডিউল থেকে রপ্তানি করা অংশগুলো ব্যবহার করতে import কিওয়ার্ড ব্যবহার করা হয়।

    উদাহরণ:

    // file2.js
    import { name, greet } from './file1.js';  // file1.js থেকে import করা হচ্ছে
    
    console.log(name);  // "John"
    greet();            // "Hello, John"
    

    এখানে, file2.js ফাইলে name এবং greet() কে file1.js থেকে আমদানি (import) করা হয়েছে।


Default Export এবং Named Export

ES6 Modules এ দুটি ধরনের export ব্যবহার করা যেতে পারে: Named Export এবং Default Export

Named Export (নেমড এক্সপোর্ট):

Named export ব্যবহার করলে আপনি একাধিক অংশ (যেমন ফাংশন, ক্লাস বা ভ্যারিয়েবল) রপ্তানি করতে পারেন এবং এদের সুনির্দিষ্ট নাম থাকতে হবে।

উদাহরণ:

// file1.js
export const name = "Alice";
export function greet() {
  console.log("Hello, " + name);
}

আমদানি করার সময়:

import { name, greet } from './file1.js';

Default Export (ডিফল্ট এক্সপোর্ট):

Default export এর মাধ্যমে আপনি একটি একক প্রপার্টি, ফাংশন বা ক্লাসকে রপ্তানি করতে পারেন। আপনি একাধিক default export রাখতে পারবেন না, তবে একটি মডিউলে একটি মাত্র default export থাকতে পারে।

উদাহরণ:

// file1.js
const greet = () => {
  console.log("Hello from default export!");
};

export default greet;  // Default export

আমদানি করার সময়:

import greet from './file1.js';  // Default import
greet();  // "Hello from default export!"

Modules এর সুবিধা

  1. কোডের পুনঃব্যবহারযোগ্যতা (Reusability): ES6 Modules এর মাধ্যমে আপনি কোডের অংশগুলোকে এক জায়গায় তৈরি করে অন্য জায়গায় সহজেই ব্যবহার করতে পারবেন। এটি কোডের ডুপ্লিকেশন কমায় এবং কোড মেইনটেন করতে সহজ করে তোলে।
  2. কোডের পরিষ্কারতা (Clarity): Modules ব্যবহারে কোডের ফাইল গুলো পরিষ্কার ও সুসংগঠিত থাকে। প্রতিটি ফাইলের উদ্দেশ্য স্পষ্ট থাকে এবং কোডটি আরও ভালোভাবে মডুলার ও স্কেলেবল হয়ে ওঠে।
  3. নামকরণ সংঘর্ষ (Naming Conflicts) এড়ানো: বিভিন্ন মডিউল থেকে একই নামের ফাংশন বা ভ্যারিয়েবল আমদানি করলে তা import স্টেটমেন্টে সুনির্দিষ্ট নাম দিয়ে রাখা যায়, যা কোডের মধ্যে নামকরণ সংঘর্ষ (naming conflicts) কমায়।
  4. লোডিং অপটিমাইজেশন: ES6 Modules ব্রাউজারে লেট লোডিং (lazy loading) সমর্থন করে, যা কোডের পারফরম্যান্স উন্নত করতে সাহায্য করে। আপনি একটি মডিউলকে ডাইনামিকভাবে আমদানি করতে পারেন শুধুমাত্র যখন তার প্রয়োজন হয়, এর ফলে অ্যাপ্লিকেশনটি দ্রুত লোড হয়।

Dynamic Imports (ডাইনামিক ইম্পোর্ট)

ES6 Modules এ ডাইনামিক ইম্পোর্টের মাধ্যমে আপনি কেবল তখনই মডিউল আমদানি করতে পারেন যখন তা প্রয়োজন হয়। এটি import() সিনট্যাক্সের মাধ্যমে করা হয় এবং এটি একটি Promise রিটার্ন করে।

উদাহরণ:

// Dynamically import a module
const loadModule = async () => {
  const module = await import('./someModule.js');
  module.someFunction();
};

এটি সাধারণভাবে মডিউলটি শুধু তখনই লোড করে যখন তা প্রয়োজনীয় হয়ে ওঠে, ফলে কোডের লোড টাইম কমিয়ে আনা যায়।


সমাপ্তি:

ES6 Modules জাভাস্ক্রিপ্টে কোডের সংজ্ঞায়িত গঠন, পুনরায় ব্যবহারযোগ্যতা এবং ভালো ম্যানেজমেন্ট নিশ্চিত করতে সহায়তা করে। এর মাধ্যমে কোডের আর্কিটেকচার আরও পরিষ্কার, স্কেলেবল এবং মডুলার হয়ে ওঠে।

Content added By

ES6 এ import এবং export এর মাধ্যমে আপনি মডিউল (modules) ব্যবহার করতে পারবেন, যা কোডকে আরও সংগঠিত, পুনঃব্যবহারযোগ্য এবং ব্যতিক্রমীভাবে পরিচালনাযোগ্য করে তোলে। মডিউল ব্যবহারের মাধ্যমে আপনি কোডকে ছোট ছোট অংশে ভাগ করতে পারেন এবং একাধিক ফাইলের মধ্যে সেই অংশগুলি ব্যবহার করতে পারেন। import এবং export কিওয়ার্ডের মাধ্যমে এক ফাইল থেকে অন্য ফাইলে কোড শেয়ার করা যায়।


Export

export কিওয়ার্ডের মাধ্যমে আপনি এক বা একাধিক ভ্যারিয়েবল, ফাংশন, অথবা ক্লাসকে একটি ফাইল থেকে অন্য ফাইলে ব্যবহার করার জন্য এক্সপোর্ট করতে পারেন। দুই ধরনের export রয়েছে:

  1. Named Export (নামযুক্ত এক্সপোর্ট)
  2. Default Export (ডিফল্ট এক্সপোর্ট)

Named Export

Named Export এর মাধ্যমে আপনি একাধিক ভ্যারিয়েবল, ফাংশন বা ক্লাসকে নির্দিষ্ট নাম দিয়ে এক্সপোর্ট করতে পারেন। এখানে, এক্সপোর্ট করা ভ্যালুগুলোর নামের সাথে মিল থাকতে হবে।

সিনট্যাক্স:

// Named export
export const name = "John";
export function greet() {
  console.log("Hello, world!");
}

বা একসাথে:

const name = "John";
function greet() {
  console.log("Hello, world!");
}

export { name, greet };

এখন এই ফাংশন বা ভ্যারিয়েবলগুলি অন্য ফাইলে import করতে পারবেন।

উদাহরণ:

// anotherFile.js
import { name, greet } from './fileName';  // File name without extension

console.log(name);  // "John"
greet();            // "Hello, world!"

Default Export

Default Export এর মাধ্যমে আপনি একটি ফাইল থেকে একটিমাত্র ডিফল্ট এক্সপোর্ট করতে পারেন। এটি সাধারণত যখন ফাইলটি একটি একক মান বা ফাংশন/ক্লাস এক্সপোর্ট করে, তখন ব্যবহৃত হয়।

সিনট্যাক্স:

// Default export
export default function greet() {
  console.log("Hello from default!");
}

এখানে, আমরা একটি ফাংশন greet() ডিফল্ট হিসেবে এক্সপোর্ট করেছি। আপনি যখন এই ফাইলটি import করবেন, তখন আপনি যেকোনো নাম ব্যবহার করতে পারেন।

উদাহরণ:

// anotherFile.js
import greet from './fileName';

greet();  // "Hello from default!"

এখানে, greet ফাংশনটি ডিফল্টভাবে এক্সপোর্ট করা হয়েছে, তাই ফাংশনের নাম পরিবর্তন করে ব্যবহার করা যেতে পারে।


import

import কিওয়ার্ডের মাধ্যমে আপনি অন্য ফাইল থেকে এক্সপোর্ট করা ভ্যারিয়েবল, ফাংশন, বা ক্লাসকে আমদানি (import) করতে পারেন।

  1. Named Imports: আপনি একাধিক নামযুক্ত এক্সপোর্টের মধ্যে থেকে প্রয়োজনীয়টি আমদানি করতে পারেন।
  2. Default Import: একক ডিফল্ট এক্সপোর্ট আমদানি করতে ব্যবহৃত হয়।

Named Imports:

import { name, greet } from './fileName';  // Named imports
console.log(name);  // "John"
greet();            // "Hello, world!"

Default Import:

import greet from './fileName';  // Default import
greet();                       // "Hello from default!"

Named Export এবং Default Export এর পার্থক্য

  1. একাধিক এক্সপোর্ট: Named Export এর মাধ্যমে আপনি একাধিক ভ্যালু এক্সপোর্ট করতে পারেন, whereas Default Export শুধুমাত্র একটিমাত্র এক্সপোর্ট করতে পারে।

    উদাহরণ:

    // Named Export: একাধিক এক্সপোর্ট করা সম্ভব
    export const name = "John";
    export const age = 30;
    
    // Default Export: শুধুমাত্র একটি এক্সপোর্ট
    export default function greet() {
      console.log("Hello!");
    }
    
  2. Import Syntax: Named Export থেকে আমদানি করার জন্য {} ব্যবহার করতে হয়, কিন্তু Default Export এর ক্ষেত্রে {} ব্যবহার করা হয় না।

    উদাহরণ:

    // Named import
    import { name, age } from './fileName';
    
    // Default import
    import greet from './fileName';
    

Mixed Import (Named + Default)

একই ফাইলে আপনি Named Export এবং Default Export উভয়ই একসাথে ব্যবহার করতে পারেন এবং সেগুলো আলাদা আলাদা করে আমদানি করতে পারেন।

উদাহরণ:

// fileName.js
export const name = "John";
export function greet() {
  console.log("Hello!");
}
export default function farewell() {
  console.log("Goodbye!");
}

// anotherFile.js
import farewell, { name, greet } from './fileName';

console.log(name);  // "John"
greet();            // "Hello!"
farewell();         // "Goodbye!"

import এবং export এর সুবিধা

  1. কোড মডুলারিটি: কোডকে ছোট ছোট অংশে ভাগ করার মাধ্যমে কাজের পরিসর বাড়ানো যায়। একাধিক ফাইলের মধ্যে কোড ভাগ করে এবং একে অপরের সাথে শেয়ার করা যায়।
  2. পুনঃব্যবহারযোগ্য কোড: আপনি একবার এক্সপোর্ট করা কোডটি বারবার ব্যবহার করতে পারেন অন্য ফাইলগুলোতে।
  3. নামকরণে সুবিধা: Named Export এর মাধ্যমে আপনি কোডের অংশগুলোর নাম স্পষ্টভাবে নির্ধারণ করতে পারেন, যা কোডের বোধগম্যতা বাড়ায়।
  4. ক্লিন ও সংগঠিত কোড: মডিউল ব্যবহারের মাধ্যমে আপনার কোড আরো পরিষ্কার, সংগঠিত এবং সহজে রক্ষণাবেক্ষণযোগ্য হয়।

এইভাবে import এবং export এর মাধ্যমে আপনি ES6 মডিউল সিস্টেম ব্যবহার করে কোডকে আরও সংগঠিত ও দক্ষভাবে পরিচালনা করতে পারবেন।

Content added By

ES6 (ECMAScript 2015) এ Modules সিস্টেম পরিচিতি পেয়েছে, যা JavaScript কোডকে ছোট ছোট ফাইল বা মডিউলে ভাগ করে পুনঃব্যবহারযোগ্য এবং ম্যানেজযোগ্য করে তোলে। মডিউল ব্যবস্থার মধ্যে Named Exports এবং Default Exports দুটি ভিন্ন ধরনের এক্সপোর্ট মেকানিজম রয়েছে। এই দুটি এক্সপোর্ট টেকনিক আপনাকে কোডকে আরও সংগঠিত ও পুনঃব্যবহারযোগ্য করার সুযোগ দেয়।


Named Exports

Named Exports এর মাধ্যমে, আপনি একাধিক এক্সপোর্ট করতে পারেন যেগুলোর প্রত্যেকটির নাম থাকে। প্রতিটি এক্সপোর্টের নাম নির্দিষ্ট করে দিলে, আপনি যখন সেই এক্সপোর্ট ব্যবহার করবেন, তখন সেগুলোর নাম ব্যবহার করে ইম্পোর্ট করতে হবে।

Named Exports এর সিনট্যাক্স

// Named Exports
export const x = 10;
export const y = 20;
export function sum(a, b) {
  return a + b;
}

এখানে, আমরা x, y এবং sum নামক তিনটি আলাদা এক্সপোর্ট করেছি।

Named Exports ইম্পোর্ট করা

Named Exports ইম্পোর্ট করতে হলে, ইম্পোর্ট করার সময় এক্সপোর্টের নাম অবশ্যই সঠিকভাবে ব্যবহার করতে হবে।

// Named Exports ইম্পোর্ট করা
import { x, y, sum } from './math.js';

console.log(x);  // 10
console.log(y);  // 20
console.log(sum(2, 3));  // 5

এখানে, x, y এবং sum নামের এক্সপোর্টগুলো {} ব্র্যাকেটের ভিতরে ইম্পোর্ট করা হয়েছে।

Named Exports এর বৈশিষ্ট্য

  1. আপনি একাধিক এক্সপোর্ট করতে পারেন।
  2. ইম্পোর্ট করার সময় এক্সপোর্টের নাম অবশ্যই সঠিক হতে হবে।
  3. আপনি এক্সপোর্টের নাম পরিবর্তন করতে চাইলে, as কীওয়ার্ড ব্যবহার করে নাম পরিবর্তন করতে পারেন।

    import { sum as add } from './math.js';
    console.log(add(2, 3));  // 5
    

Default Exports

Default Exports এর মাধ্যমে, আপনি একমাত্র একটি এক্সপোর্ট নির্দিষ্ট করতে পারেন যা ডিফল্টভাবে ইম্পোর্ট করা যাবে। Default Exports ব্যবহারের সময় আপনি একক এক্সপোর্টের জন্য একটি নাম বা মান নির্ধারণ করতে পারেন, এবং যখন সেই মডিউলটি ইম্পোর্ট করা হয়, তখন এটি কোনো নাম ছাড়াই ইম্পোর্ট করা সম্ভব।

Default Exports এর সিনট্যাক্স

// Default Export
export default function multiply(a, b) {
  return a * b;
}

এখানে, আমরা একটি multiply ফাংশন ডিফল্ট এক্সপোর্ট হিসেবে নির্ধারণ করেছি। এই এক্সপোর্ট শুধুমাত্র একটি এক্সপোর্ট হতে পারে, এবং এটি নাম ছাড়াই ইম্পোর্ট করা যাবে।

Default Exports ইম্পোর্ট করা

Default Exports ইম্পোর্ট করতে হলে, ইম্পোর্টের সময় মডিউলের নাম নির্ধারণ করা যেতে পারে, তবে এটি {} ব্র্যাকেটের মধ্যে লিখতে হবে না।

// Default Export ইম্পোর্ট করা
import multiply from './math.js';

console.log(multiply(2, 3));  // 6

এখানে, multiply ফাংশনটি math.js থেকে ডিফল্ট এক্সপোর্ট হিসেবে ইম্পোর্ট করা হয়েছে।

Default Exports এর বৈশিষ্ট্য

  1. শুধুমাত্র একটাই ডিফল্ট এক্সপোর্ট হতে পারে।
  2. ডিফল্ট এক্সপোর্টের জন্য নাম নির্ধারণ করা যায় না, তবে ইম্পোর্টের সময় যে কোনো নাম দেওয়া যায়।
  3. এটি কোডকে আরও পরিষ্কার এবং সহজ করে তোলে যখন একটাই ভ্যালু বা ফাংশন এক্সপোর্ট করা হয়।

Named এবং Default Exports এর মধ্যে পার্থক্য

বৈশিষ্ট্যNamed ExportsDefault Exports
এক্সপোর্টএকাধিক এক্সপোর্ট করতে পারবেনএকটিই ডিফল্ট এক্সপোর্ট করা যায়
ইম্পোর্ট{} ব্যবহার করে নির্দিষ্ট নাম দিয়ে ইম্পোর্ট করতে হবেকোন নাম না দিয়েই ইম্পোর্ট করা যায়
নাম পরিবর্তননাম পরিবর্তন করা সম্ভব (as)ইম্পোর্ট করার সময় নাম দেওয়া যেতে পারে
উদাহরণexport const x = 10;export default function () {}

উদাহরণ: Named এবং Default Exports একসাথে ব্যবহার

আপনি Named এবং Default Exports একসাথে একটি মডিউলে ব্যবহার করতে পারেন। উদাহরণস্বরূপ:

// math.js
export const PI = 3.14;
export const add = (a, b) => a + b;
export default function multiply(a, b) {
  return a * b;
}

এখানে, PI এবং add হল Named Exports, এবং multiply হল Default Export।

ইম্পোর্ট করা

import multiply, { PI, add } from './math.js';

console.log(multiply(2, 3));  // 6
console.log(PI);               // 3.14
console.log(add(2, 3));        // 5

এখানে, multiply ডিফল্ট এক্সপোর্ট হিসেবে ইম্পোর্ট করা হয়েছে, আর PI এবং add নামক এক্সপোর্টগুলি Named Exports হিসেবে ইম্পোর্ট করা হয়েছে।


উপসংহার

Named Exports এবং Default Exports ES6 মডিউল ব্যবস্থার দুটি গুরুত্বপূর্ণ অংশ। Named Exports আপনাকে একাধিক এক্সপোর্ট করতে দেয় এবং ইম্পোর্ট করার সময় সঠিক নাম ব্যবহার করতে হয়, whereas Default Exports একক এক্সপোর্টের জন্য ব্যবহৃত হয় এবং ইম্পোর্ট করার সময় কোনো নাম দেওয়া যায়। এই দুটি এক্সপোর্ট টেকনিক কোডকে আরও সংগঠিত ও পুনঃব্যবহারযোগ্য করতে সাহায্য করে।

Content added By

ES6 (ECMAScript 2015) মডিউল সিস্টেমের মাধ্যমে JavaScript কোডকে মডুলার এবং পুনঃব্যবহারযোগ্য করা সম্ভব হয়েছে। এটি import এবং export কিওয়ার্ড ব্যবহার করে কোডের বিভিন্ন অংশকে একে অপরের সাথে যুক্ত করতে সাহায্য করে। এই ফিচারটি অন্য যে কোন external library বা প্যাকেজের সাথে ব্যবহার করেও আপনি আপনার অ্যাপ্লিকেশনকে আরও সংগঠিত ও কার্যকরী করতে পারেন।


ES6 Modules Overview

ES6 মডিউল সিস্টেমের মূল দুটি কিওয়ার্ড হল import এবং export:

  • export: এটি কোন ফাংশন, অবজেক্ট বা ভ্যারিয়েবলকে মডিউল থেকে অন্য মডিউলে ব্যবহার করার জন্য প্রকাশ করে।
  • import: এটি অন্য মডিউল থেকে নির্দিষ্ট ফাংশন বা অবজেক্ট ব্যবহার করার জন্য ব্যবহৃত হয়।

External Libraries এর সাথে ES6 Modules ব্যবহার

যেহেতু ES6 মডিউল সিস্টেম আধুনিক JavaScript লাইব্রেরি এবং ফ্রেমওয়ার্কের সাথে ইন্টিগ্রেশন সহজ করে, তাই External Libraries (যেমন React, Lodash, Axios, D3.js ইত্যাদি) ব্যবহার করার সময় আপনি ES6 মডিউল সিস্টেম ব্যবহার করতে পারেন।

এখন দেখব কিভাবে আপনি ES6 মডিউল সিস্টেম ব্যবহার করে External Libraries ইম্পোর্ট করবেন।


External Libraries ইম্পোর্ট করার উদাহরণ

React Example:

React একটি খুবই জনপ্রিয় JavaScript লাইব্রেরি এবং এটি ES6 মডিউল সিস্টেমকে ব্যবহার করে কোড সেগমেন্টেশনের জন্য সাহায্য করে।

Install React via npm:

npm install react react-dom

React এবং ReactDOM মডিউলগুলিকে ES6 মডিউল সিস্টেম ব্যবহার করে ইম্পোর্ট করা যায়।

React এর সাথে ES6 Module ব্যবহার:

// Importing React and ReactDOM
import React from 'react';
import ReactDOM from 'react-dom';

// Creating a simple React component
const App = () => {
  return <h1>Hello, React with ES6 Modules!</h1>;
};

// Rendering the React component
ReactDOM.render(<App />, document.getElementById('root'));

এখানে, React এবং ReactDOM লাইব্রেরিগুলিকে import কিওয়ার্ড দিয়ে মডিউল হিসেবে ইম্পোর্ট করা হয়েছে।


Lodash Example:

Lodash হল একটি অত্যন্ত জনপ্রিয় JavaScript ইউটিলিটি লাইব্রেরি। ES6 মডিউল সিস্টেম ব্যবহার করে Lodash এর বিভিন্ন ফাংশন ইম্পোর্ট করা যায়।

Install Lodash via npm:

npm install lodash

Lodash এর debounce ফাংশন ইম্পোর্ট করার উদাহরণ:

import { debounce } from 'lodash';

// Debouncing a function
const handleScroll = debounce(() => {
  console.log("Scrolling...");
}, 200);

window.addEventListener('scroll', handleScroll);

এখানে, Lodash এর debounce ফাংশনটি ES6 মডিউল সিস্টেম ব্যবহার করে ইম্পোর্ট করা হয়েছে এবং স্ক্রল ইভেন্টের সাথে ব্যবহার করা হয়েছে।


Axios Example:

Axios একটি জনপ্রিয় JavaScript লাইব্রেরি যা HTTP রিকোয়েস্ট করতে ব্যবহৃত হয়। এটি ES6 মডিউল সিস্টেমের সাথে খুব সহজে ইম্পোর্ট করা যায়।

Install Axios via npm:

npm install axios

Axios ব্যবহার করে API কল করার উদাহরণ:

import axios from 'axios';

axios.get('https://jsonplaceholder.typicode.com/posts')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error('Error fetching data:', error);
  });

এখানে axios মডিউলকে import করা হয়েছে এবং একটি GET রিকোয়েস্ট পাঠানো হয়েছে।


ES6 Modules and Default Export

ES6 মডিউলে আপনি একটি মডিউলকে default exportও করতে পারেন, যা কোন একটি ভ্যালু, ক্লাস বা ফাংশনকে ডিফল্ট হিসেবে এক্সপোর্ট করে।

Example:

Default Export:

// math.js
const add = (a, b) => a + b;
export default add;

Importing a Default Export:

// main.js
import add from './math';

console.log(add(2, 3));  // 5

এখানে, add ফাংশনটি default export হিসেবে math.js থেকে এক্সপোর্ট করা হয়েছে এবং অন্য একটি ফাইলে ইম্পোর্ট করা হয়েছে।


Dynamic Imports

ES6 মডিউল সিস্টেমে আপনি dynamic imports ব্যবহার করে কোড সেগমেন্টগুলিকে সময়ের সাথে ইম্পোর্ট করতে পারেন, যা অ্যাপ্লিকেশনকে আরও কার্যকরী এবং লেজি লোডিং (lazy loading) করতে সাহায্য করে।

Dynamic Import Example:

const loadComponent = async () => {
  const module = await import('./someComponent.js');
  const Component = module.default;
  console.log(Component);
};

loadComponent();

এখানে import() একটি dynamic import ব্যবহার করা হয়েছে, যা ফাইলটি প্রয়োজনের সময় লোড করবে।


ES6 Modules এবং External Libraries ব্যবহার করার সুবিধা

  • Code Separation: ES6 মডিউল সিস্টেম ব্যবহারের মাধ্যমে আপনি কোডটিকে ভিন্ন ভিন্ন ফাইল এবং মডিউলে ভাগ করতে পারেন, যা কোডকে আরও সুসংগঠিত এবং পরিষ্কার রাখে।
  • Maintainability: কোডের মডিউলার স্ট্রাকচার মেইনটেইন করা সহজ হয় এবং ভবিষ্যতে কোড আপডেট করা সহজ হয়।
  • Reusability: মডিউলগুলি পুনরায় ব্যবহার করা যেতে পারে বিভিন্ন প্রকল্পে।
  • Efficient Loading: Dynamic import এবং lazy loading এর মাধ্যমে আপনার অ্যাপ্লিকেশন আরও দ্রুত লোড হতে পারে।

উপসংহার

ES6 মডিউল সিস্টেম external libraries এর সাথে ব্যবহার করার মাধ্যমে কোডের সেগমেন্টেশন, পুনঃব্যবহারযোগ্যতা এবং মেইনটেইনেবিলিটি বৃদ্ধি পায়। import এবং export কিওয়ার্ডের মাধ্যমে আপনি আপনার কোডকে আরও সংগঠিত এবং মডুলারভাবে সাজাতে পারেন, যা বড় প্রজেক্টে খুবই সহায়ক। ES6 মডিউল সিস্টেমের ব্যবহার আপনাকে React, Lodash, Axios সহ আরও অনেক লাইব্রেরির সাথে সহজে কাজ করতে সাহায্য করবে।

Content added By
Promotion

Are you sure to start over?

Loading...