Underscore.js এবং React.js: পরিচিতি
Underscore.js এবং React.js দুটি শক্তিশালী JavaScript লাইব্রেরি/ফ্রেমওয়ার্ক, যা ওয়েব ডেভেলপমেন্টে ব্যবহার করা হয়। তবে, তাদের ভূমিকা এবং কাজের ক্ষেত্র আলাদা।
- Underscore.js: এটি একটি ইউটিলিটি লাইব্রেরি যা বিভিন্ন ফাংশনাল প্রোগ্রামিং ফিচার যেমন
map,filter,reduce,findইত্যাদি প্রদান করে, যা অ্যারে, অবজেক্ট, এবং অন্যান্য ডেটা কাঠামোতে অপারেশন করতে সাহায্য করে। - React.js: এটি একটি UI লাইব্রেরি, যা ইন্টারঅ্যাকটিভ ইউজার ইন্টারফেস (UI) তৈরি করতে ব্যবহৃত হয়। React DOM এবং ভার্চুয়াল DOM ব্যবহার করে UI আপডেট করে।
React.js-এর সাথে Underscore.js ব্যবহারের ফলে ডেভেলপাররা শক্তিশালী ফাংশনাল প্রোগ্রামিং সুবিধা পেতে পারেন, যাতে ডেটা ম্যানিপুলেশন এবং লজিক্যাল অপারেশন সহজ হয়ে যায়। React.js-এর স্টেট এবং প্রপ্স আপডেটের জন্য ডেটার উপর অপারেশন করার সময় Underscore.js কার্যকরী হতে পারে।
Underscore.js এর সাথে React.js এর সমন্বয়
React.js একটি কম্পোনেন্ট বেসড লাইব্রেরি এবং এর মধ্যে প্রপ্স এবং স্টেটের সাহায্যে ডেটা ম্যানিপুলেট করা হয়। তবে, যখন ডেটার উপর জটিল অপারেশন করতে হয়, যেমন অ্যারে ফিল্টার, মান পরিবর্তন, বা ম্যাপিং, তখন Underscore.js ব্যবহার করা হয়।
Underscore.js React.js এর সাথে কাজ করার সময় ব্যবহৃত কিছু সাধারণ পদ্ধতি:
১. ডেটা ফিল্টারিং (Filtering Data)
React কম্পোনেন্টে ডেটার উপর ফিল্টার অপারেশন করতে Underscore.js এর _.filter() ব্যবহার করা যেতে পারে।
import React, { useState } from 'react';
import _ from 'underscore';
const MyComponent = () => {
const [items, setItems] = useState([
{ name: 'John', age: 28 },
{ name: 'Alice', age: 30 },
{ name: 'Bob', age: 24 }
]);
// ফিল্টার করার জন্য Underscore.js ব্যবহার
const filterItems = _.filter(items, item => item.age > 25);
return (
<div>
<h1>Filtered Items</h1>
<ul>
{filterItems.map((item, index) => (
<li key={index}>{item.name} - {item.age}</li>
))}
</ul>
</div>
);
};
export default MyComponent;
এখানে, _.filter() ফাংশনটি ব্যবহার করে আপনি ২৫ বছরের বেশি বয়সের সব ব্যবহারকারীর নাম এবং বয়স ফিল্টার করছেন এবং React কম্পোনেন্টে তা দেখাচ্ছেন।
২. ডেটা ম্যানিপুলেশন (Data Manipulation)
Underscore.js দিয়ে ডেটার বিভিন্ন অপারেশন যেমন ম্যাপিং (mapping) বা অ্যারে পরিবর্তন করতে React কম্পোনেন্টে সহজে ব্যবহার করা যায়।
import React, { useState } from 'react';
import _ from 'underscore';
const MyComponent = () => {
const [numbers, setNumbers] = useState([1, 2, 3, 4, 5]);
// অ্যারে ম্যানিপুলেট করতে _.map ব্যবহার
const doubledNumbers = _.map(numbers, number => number * 2);
return (
<div>
<h1>Doubled Numbers</h1>
<ul>
{doubledNumbers.map((number, index) => (
<li key={index}>{number}</li>
))}
</ul>
</div>
);
};
export default MyComponent;
এখানে, _.map() ফাংশনটি ব্যবহার করা হয়েছে যা অ্যারের প্রতিটি উপাদানকে ২ দিয়ে গুণ করবে এবং তা React কম্পোনেন্টে দেখাবে।
৩. অ্যারে থেকে উপাদান খোঁজা (Finding an Element in Array)
Underscore.js এর _.find() ফাংশনটি ব্যবহার করে অ্যারে থেকে কোনো নির্দিষ্ট উপাদান খুঁজে পাওয়া যায়। React.js-এ এটি একটি প্রপার্টি বা ভ্যালু অনুসন্ধানে ব্যবহার করা যেতে পারে।
import React, { useState } from 'react';
import _ from 'underscore';
const MyComponent = () => {
const [users, setUsers] = useState([
{ id: 1, name: 'John', age: 28 },
{ id: 2, name: 'Alice', age: 30 },
{ id: 3, name: 'Bob', age: 24 }
]);
// _.find() ব্যবহার করে ব্যবহারকারী খোঁজা
const foundUser = _.find(users, user => user.name === 'Alice');
return (
<div>
<h1>Found User</h1>
{foundUser ? (
<p>{foundUser.name} is {foundUser.age} years old.</p>
) : (
<p>No user found</p>
)}
</div>
);
};
export default MyComponent;
এখানে, _.find() ফাংশনটি ব্যবহার করে আপনি users অ্যারে থেকে নাম 'Alice' থাকা প্রথম ব্যবহারকারীকে খুঁজে বের করছেন।
৪. অ্যারে থেকে প্রপার্টি বের করা (Plucking Properties from Arrays)
Underscore.js এর _.pluck() ফাংশনটি ব্যবহার করে আপনি অ্যারে বা অবজেক্টের মধ্যে থেকে নির্দিষ্ট প্রপার্টি বের করতে পারেন। এটি React কম্পোনেন্টে ব্যবহৃত হতে পারে যেমন কোনো নির্দিষ্ট প্রপার্টি প্রদর্শন করতে।
import React, { useState } from 'react';
import _ from 'underscore';
const MyComponent = () => {
const [users, setUsers] = useState([
{ name: 'John', age: 28 },
{ name: 'Alice', age: 30 },
{ name: 'Bob', age: 24 }
]);
// _.pluck() ব্যবহার করে সব নাম বের করা
const names = _.pluck(users, 'name');
return (
<div>
<h1>User Names</h1>
<ul>
{names.map((name, index) => (
<li key={index}>{name}</li>
))}
</ul>
</div>
);
};
export default MyComponent;
এখানে, _.pluck() ব্যবহার করে users অ্যারে থেকে সমস্ত name প্রপার্টি বের করা হয়েছে এবং তা React কম্পোনেন্টে দেখানো হয়েছে।
Underscore.js এবং React.js এর সমন্বয় ব্যবহারের সুবিধা
- ডেটা ম্যানিপুলেশনে সহায়তা: Underscore.js-এর ফাংশনগুলো অ্যারে এবং অবজেক্টের বিভিন্ন অপারেশন দ্রুত এবং কার্যকরভাবে সম্পাদন করতে সাহায্য করে। React.js এর সাথে একে সমন্বিত করে আপনি সহজে ডেটা ম্যানিপুলেশন করতে পারবেন।
- ফাংশনাল প্রোগ্রামিং সুবিধা: Underscore.js ফাংশনাল প্রোগ্রামিং এর সুবিধা প্রদান করে, যা React.js এর কম্পোনেন্ট আর্কিটেকচারের সঙ্গে খুবই ভালোভাবে কাজ করে।
- কোড সিমপ্লিফিকেশন: React.js-এ ডেটা ম্যানিপুলেশনের জন্য আপনাকে অতিরিক্ত কোড লিখতে হয় না, কারণ Underscore.js এর মাধ্যমে ডেটা ম্যানিপুলেশন অনেক সহজ হয়ে যায়।
সারাংশ
Underscore.js এবং React.js একসাথে ব্যবহৃত হলে, React কম্পোনেন্টের মধ্যে ডেটা ম্যানিপুলেশন এবং ফাংশনাল প্রোগ্রামিং সুবিধাগুলোকে আরও শক্তিশালী করে তোলে। Underscore.js-এর বিভিন্ন ইউটিলিটি ফাংশন যেমন map, filter, find, pluck, reduce ইত্যাদি ব্যবহার করে React.js কম্পোনেন্টে ডেটা আরও সহজ এবং দ্রুতভাবে ম্যানিপুলেট করা যায়।
Read more