ReactJS-এ Reusable Components (পুনঃব্যবহারযোগ্য কম্পোনেন্ট) তৈরি করা একটি গুরুত্বপূর্ণ কৌশল, যা আপনার অ্যাপ্লিকেশনকে আরও মডুলার এবং স্কেলেবল করে তোলে। Reusable Components এর মাধ্যমে আপনি একবার তৈরি করা কম্পোনেন্টকে বিভিন্ন জায়গায় ব্যবহার করতে পারেন, ফলে কোডের পুনঃব্যবহারযোগ্যতা বৃদ্ধি পায় এবং মেইন্টেন্যান্স সহজ হয়।
এখানে আমরা Reusable Components তৈরি এবং ব্যবহারের জন্য কিছু পদ্ধতি আলোচনা করবো।
Reusable Component কী?
Reusable Component হল এমন একটি React কম্পোনেন্ট যা একবার তৈরি করার পর বিভিন্ন পরিস্থিতিতে এবং বিভিন্ন ডাটা দিয়ে পুনঃব্যবহার করা যায়। সাধারণত, Reusable Components স্টেট, প্রপস, এবং ফাংশনালিটি দ্বারা কাস্টমাইজযোগ্য হয়। এটি একটি উপাদানকে বারবার ব্যবহার করতে সক্ষম করে, তাই কোডের ডুপ্লিকেশন কমে এবং অ্যাপ্লিকেশনটির মেইন্টেন্যান্স সহজ হয়।
Reusable Component তৈরি করার নিয়ম
১. কম্পোনেন্টের মধ্যে প্রপস (Props) ব্যবহার করা
React-এ প্রপস (Props) ব্যবহার করে আপনি কম্পোনেন্টের মধ্যে ডাটা পাঠাতে পারেন। একটি Reusable Component সাধারণত প্রপসের মাধ্যমে কাস্টমাইজ করা হয়। এটি ব্যবহারকারীর ইনপুট বা ডাটা অনুযায়ী কম্পোনেন্টটির কার্যক্রম বা আউটপুট পরিবর্তন করতে সক্ষম।
উদাহরণ: Button কম্পোনেন্ট
ধরা যাক, আপনি একটি Button কম্পোনেন্ট তৈরি করতে চান, যা বিভিন্ন স্টাইল, টেক্সট, এবং কার্যক্রম গ্রহণ করবে:
import React from 'react';
// Reusable Button Component
const Button = ({ text, onClick, style }) => {
return (
<button onClick={onClick} style={style}>
{text}
</button>
);
};
export default Button;
এখানে, Button কম্পোনেন্টটি text, onClick, এবং style প্রপস গ্রহণ করছে, যা প্রতিটি ইনস্ট্যান্সের জন্য আলাদা হতে পারে।
২. Reusable Components-এর জন্য ডিফল্ট প্রপস (Default Props) সেট করা
যদি আপনি চান যে কোনো প্রপস প্রদান না করা হলে কিছু ডিফল্ট মান ব্যবহার করা হোক, তবে আপনি defaultProps ব্যবহার করতে পারেন।
Button.defaultProps = {
text: 'Click Me',
style: { backgroundColor: 'blue', color: 'white' }
};
এটি এমনভাবে কাজ করবে যে যদি Button কম্পোনেন্টে text বা style প্রপস না দেওয়া হয়, তবে এগুলোর ডিফল্ট মান ব্যবহার হবে।
৩. Conditional Rendering ব্যবহার করা
একটি Reusable Component সাধারণত ভিন্ন ভিন্ন ইনপুটের জন্য বিভিন্ন আউটপুট প্রদান করতে পারে। এর জন্য conditional rendering ব্যবহার করা হয়। React-এ, আপনি if, ternary operators বা switch ব্যবহার করে বিভিন্ন কন্ডিশন অনুযায়ী কম্পোনেন্টের আউটপুট কাস্টমাইজ করতে পারেন।
উদাহরণ: Alert কম্পোনেন্ট
ধরা যাক, আপনি একটি Alert কম্পোনেন্ট তৈরি করতে চান, যা সফলতা, সতর্কতা এবং ত্রুটির জন্য বিভিন্ন স্টাইল এবং টেক্সট দেখাবে।
import React from 'react';
const Alert = ({ type, message }) => {
const getAlertStyle = () => {
switch (type) {
case 'success':
return { backgroundColor: 'green', color: 'white' };
case 'warning':
return { backgroundColor: 'yellow', color: 'black' };
case 'error':
return { backgroundColor: 'red', color: 'white' };
default:
return { backgroundColor: 'gray', color: 'white' };
}
};
return (
<div style={getAlertStyle()}>
<p>{message}</p>
</div>
);
};
export default Alert;
এখানে Alert কম্পোনেন্টটি type এবং message প্রপস গ্রহণ করে। type এর ভিত্তিতে এটি বিভিন্ন স্টাইল এবং বার্তা প্রদর্শন করে।
Reusable Component ব্যবহারের নিয়ম
১. Reusable Components ব্যবহার করা
একবার একটি কম্পোনেন্ট তৈরি করলে, আপনি সেটি অ্যাপ্লিকেশনের যেকোনো জায়গায় পুনঃব্যবহার করতে পারেন। পুনঃব্যবহারের জন্য আপনাকে শুধু উপযুক্ত প্রপস পাঠাতে হবে।
উদাহরণ: Button কম্পোনেন্ট ব্যবহার করা
import React from 'react';
import Button from './Button';
const App = () => {
const handleClick = () => {
alert('Button clicked!');
};
return (
<div>
<h1>Reusable Components in React</h1>
<Button text="Submit" onClick={handleClick} style={{ backgroundColor: 'green' }} />
<Button text="Cancel" onClick={handleClick} style={{ backgroundColor: 'red' }} />
</div>
);
};
export default App;
এখানে, Button কম্পোনেন্ট দুটি আলাদা প্রপস দিয়ে ব্যবহার করা হয়েছে। একটির টেক্সট "Submit" এবং অন্যটির টেক্সট "Cancel"।
২. Reusable Component এর সাথে Form Handling
আপনি যদি একটি ফর্ম তৈরি করতে চান, তবে আপনি Reusable Input Components তৈরি করতে পারেন যা বিভিন্ন ধরণের ইনপুট গ্রহণ করতে পারে।
import React, { useState } from 'react';
// Reusable Input Component
const Input = ({ label, type, value, onChange }) => (
<div>
<label>{label}</label>
<input type={type} value={value} onChange={onChange} />
</div>
);
const Form = () => {
const [name, setName] = useState('');
const [email, setEmail] = useState('');
return (
<form>
<Input label="Name" type="text" value={name} onChange={(e) => setName(e.target.value)} />
<Input label="Email" type="email" value={email} onChange={(e) => setEmail(e.target.value)} />
<button type="submit">Submit</button>
</form>
);
};
export default Form;
এখানে, Input কম্পোনেন্টটি একটি পুনঃব্যবহারযোগ্য ইনপুট ফিল্ড তৈরি করেছে, যা ফর্মের জন্য name এবং email ইনপুট দুটি গ্রহণ করছে।
ReactJS-এ Reusable Components তৈরি এবং ব্যবহারের মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনের কোডের পুনঃব্যবহারযোগ্যতা বৃদ্ধি করতে পারেন, কোড ডুপ্লিকেশন কমাতে পারেন, এবং অ্যাপ্লিকেশনটির মেইন্টেন্যান্স আরও সহজ করতে পারেন। React-এ প্রপস, স্টেট, কন্ডিশনাল রেন্ডারিং এবং কম্পোনেন্ট ডিজাইন প্যাটার্ন ব্যবহার করে আপনি এমন কম্পোনেন্ট তৈরি করতে পারবেন যা বিভিন্ন পরিস্থিতিতে ব্যবহার করা যায়।
Read more