Hooks কী?
React 16.8-এ Hooks পরিচয় করানো হয়, যা ফাংশনাল কম্পোনেন্টগুলোর মধ্যে স্টেট এবং লাইফ সাইকেল ফিচার ব্যবহারের সুযোগ দেয়। Hooks আপনাকে ক্লাস কম্পোনেন্টের মতো স্টেট এবং অন্যান্য React ফিচার ব্যবহার করতে সক্ষম করে, তবে ফাংশনাল কম্পোনেন্টের সুবিধা নিয়ে। Hooks হল একটি নতুন পদ্ধতি React অ্যাপ্লিকেশন তৈরির জন্য, যা কোডের পাঠযোগ্যতা, পুনঃব্যবহারযোগ্যতা এবং কার্যকারিতা বাড়ায়।
React-এ প্রধান Hooks:
- useState: ফাংশনাল কম্পোনেন্টে স্টেট ব্যবহার করতে।
- useEffect: ফাংশনাল কম্পোনেন্টে লাইফ সাইকেল মেথড এবং সাইড ইফেক্ট পরিচালনা করতে।
- useContext: React Context API ব্যবহার করতে।
- useReducer: স্টেট পরিচালনা করার জন্য আরও উন্নত কৌশল।
- useRef: DOM এ এক্সেস পাওয়ার জন্য এবং স্টেট থেকে আলাদা কোনো মান সংরক্ষণ করতে।
- useMemo এবং useCallback: পারফরম্যান্স অপটিমাইজেশন জন্য ব্যবহৃত হয়।
Hooks কেন প্রয়োজন?
React এর পূর্ববর্তী সংস্করণে, শুধুমাত্র ক্লাস কম্পোনেন্ট-এ স্টেট, লাইফ সাইকেল মেথড এবং অন্যান্য React ফিচার ব্যবহার করা যেত। তবে, ফাংশনাল কম্পোনেন্টের মাধ্যমে কোড লেখা সহজ এবং কমপ্যাক্ট হতে পারে, তবে ফাংশনাল কম্পোনেন্টে স্টেট এবং লাইফ সাইকেল মেথড ব্যবহার করা সম্ভব ছিল না। এর ফলে, ক্লাস কম্পোনেন্টে এই ফিচারগুলো ব্যবহার করতে হলে কোডটি অনেক বড় এবং জটিল হয়ে যেত। Hooks এর আগমনে, ফাংশনাল কম্পোনেন্টের মধ্যে স্টেট এবং লাইফ সাইকেল ব্যবস্থাপনা করা সম্ভব হয়।
Hooks ব্যবহারের সুবিধাসমূহ:
১. ক্লাস কম্পোনেন্ট থেকে সহজে ফাংশনাল কম্পোনেন্টে স্থানান্তর
Hooks ফাংশনাল কম্পোনেন্টে স্টেট এবং লাইফ সাইকেল মেথড ব্যবহারের সুযোগ প্রদান করে, যার ফলে ডেভেলপাররা কমপ্লেক্স ক্লাস কম্পোনেন্টের পরিবর্তে ফাংশনাল কম্পোনেন্ট ব্যবহার করতে পারেন, যা বেশি সহজ এবং পাঠযোগ্য।
২. কোড পুনঃব্যবহারযোগ্যতা বৃদ্ধি
Hooks আপনাকে স্টেট এবং অন্যান্য React ফিচারকে ভিন্ন ভিন্ন ফাংশনে আলাদা আলাদা ভাবে রাখার সুযোগ দেয়, যা কোডের পুনঃব্যবহারযোগ্যতা বৃদ্ধি করে। Hooks ব্যবহারের ফলে একই ধরনের ফিচারগুলি একত্রে রাখতে এবং প্রয়োজনে একাধিক কম্পোনেন্টে ব্যবহার করতে সহজ হয়।
৩. কোড কমপ্যাক্ট এবং পরিষ্কার
Hooks ব্যবহারের মাধ্যমে ক্লাস কম্পোনেন্টের দীর্ঘ কোডের পরিবর্তে ছোট, পরিষ্কার এবং সহজ ফাংশনাল কম্পোনেন্ট লেখা সম্ভব হয়। এর ফলে কোডের মেইন্টেনেন্স এবং ডেভেলপমেন্ট আরও সহজ হয়ে ওঠে।
৪. স্টেট এবং সাইড ইফেক্ট ম্যানেজমেন্ট
React Hooks-এর মাধ্যমে স্টেট এবং সাইড ইফেক্টগুলো (যেমন, API কল, সাবস্ক্রিপশন, টাইমার, ইত্যাদি) ফাংশনাল কম্পোনেন্টের মধ্যে সহজে পরিচালনা করা যায়। useEffect hook ব্যবহার করে লাইফ সাইকেল মেথড পরিচালনা করা সম্ভব হয়, যেমন componentDidMount, componentDidUpdate, এবং componentWillUnmount।
৫. পারফরম্যান্স অপটিমাইজেশন
Hooks এর মধ্যে useMemo এবং useCallback রয়েছে, যা পারফরম্যান্স অপটিমাইজেশনের জন্য ব্যবহৃত হয়। এই hooks ব্যবহার করে, আপনি মেমোরি ব্যবহার অপটিমাইজ করতে পারেন এবং ফাংশন বা কম্পোনেন্টের পুনরায় রেন্ডারিং কমাতে পারেন।
৬. React ইকোসিস্টেমের সঙ্গে সহজ সংহতি
Hooks React এর অন্যান্য API যেমন Context, Reducer, Ref, ইত্যাদির সঙ্গে সহজভাবে সংযুক্ত হতে পারে। useContext, useReducer এবং useRef Hooks ব্যবহারের মাধ্যমে React অ্যাপ্লিকেশনগুলো আরও শক্তিশালী এবং ফ্লেক্সিবল হয়ে ওঠে।
React-এ প্রধান Hooks
১. useState
useState হল React-এ স্টেট পরিচালনা করার জন্য ব্যবহার করা হয়। এটি একটি ফাংশন যা স্টেটের মান এবং সেটার আপডেট করার ফাংশন প্রদান করে।
import React, { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0); // স্টেট সেট করা
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>Click me</button>
</div>
);
}
এখানে, useState স্টেট count তৈরি করেছে এবং setCount সেটার মান আপডেট করার ফাংশন হিসেবে কাজ করছে।
২. useEffect
useEffect হল React-এ সাইড ইফেক্ট পরিচালনার জন্য ব্যবহৃত একটি hook। এটি ফাংশনাল কম্পোনেন্টে লাইফ সাইকেল মেথডের মতো কাজ করে, যেমন componentDidMount, componentDidUpdate, এবং componentWillUnmount।
import React, { useState, useEffect } from 'react';
function Timer() {
const [seconds, setSeconds] = useState(0);
useEffect(() => {
const interval = setInterval(() => {
setSeconds(seconds => seconds + 1);
}, 1000);
return () => clearInterval(interval); // cleanup function
}, []);
return <h1>{seconds} seconds have passed</h1>;
}
এখানে, useEffect টাইমার সেট করে এবং কম্পোনেন্টটি আনমাউন্ট হলে সেটি ক্লিনআপ করে।
৩. useContext
useContext hook React Context API ব্যবহার করে, যাতে আপনি কম্পোনেন্ট ট্রি জুড়ে ডেটা শেয়ার করতে পারেন।
import React, { useContext } from 'react';
const ThemeContext = React.createContext('light');
function ThemedComponent() {
const theme = useContext(ThemeContext);
return <div>The current theme is {theme}</div>;
}
এখানে, useContext hook দ্বারা ThemeContext থেকে ডেটা নেয়া হচ্ছে।
সারাংশ
React Hooks React 16.8 এ চালু হওয়ার পর থেকে ফাংশনাল কম্পোনেন্টে স্টেট, লাইফ সাইকেল মেথড এবং অন্যান্য ফিচার ব্যবহারের সুবিধা দিয়েছে। Hooks এর মাধ্যমে কোড লেখার পদ্ধতি আরও সহজ, পরিষ্কার এবং পুনঃব্যবহারযোগ্য হয়েছে, যা React অ্যাপ্লিকেশন তৈরির প্রক্রিয়াকে দ্রুত ও কার্যকরী করে তোলে।
Read more