React-এর experimental_useFormStatus হুক ব্যবহার করে শক্তিশালী ফর্ম এরর হ্যান্ডলিং, সাবমিশন ট্র্যাকিং এবং উন্নত ইউজার এক্সপেরিয়েন্স সম্পর্কে জানুন। স্থিতিশীল ও ব্যবহারকারী-বান্ধব ফর্ম তৈরি শিখুন।
React experimental_useFormStatus: ফর্মের এরর স্ট্যাটাস ট্র্যাকিং-এ দক্ষতা অর্জন
React-এর ক্রমবর্ধমান জগৎ ক্রমাগত নতুন নতুন ফিচার নিয়ে আসছে যা ডেভেলপমেন্টকে সহজ করা এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করার লক্ষ্যে তৈরি। এমনই একটি সাম্প্রতিক সংযোজন, যা বর্তমানে পরীক্ষামূলক পর্যায়ে রয়েছে, তা হলো experimental_useFormStatus হুক। এই শক্তিশালী টুলটি আপনার React কম্পোনেন্টের মধ্যে সরাসরি ফর্ম সাবমিশনের স্ট্যাটাস, যেমন এরর স্টেট, ট্র্যাক করার একটি সুবিন্যস্ত উপায় প্রদান করে। এই ব্লগ পোস্টটি experimental_useFormStatus বোঝা এবং কার্যকরভাবে ব্যবহার করে শক্তিশালী ও ব্যবহারকারী-বান্ধব ফর্ম তৈরির একটি সম্পূর্ণ নির্দেশিকা প্রদান করে।
experimental_useFormStatus-এর প্রয়োজনীয়তা বোঝা
ঐতিহ্যগতভাবে, React-এ ফর্ম সাবমিশন ম্যানেজ করার জন্য বেশ অনেকটা বয়লারপ্লেট কোডের প্রয়োজন হতো। ডেভেলপারদের সাবমিশন স্টেট (পেন্ডিং, সফল, ত্রুটি) ম্যানুয়ালি ট্র্যাক করতে হতো, এরর মেসেজ হ্যান্ডেল করতে হতো এবং সেই অনুযায়ী UI আপডেট করতে হতো। এটি জটিল এবং ত্রুটিপূর্ণ কোডের কারণ হতে পারত, বিশেষ করে একাধিক ভ্যালিডেশন নিয়ম এবং অ্যাসিঙ্ক্রোনাস অপারেশনসহ জটিল ফর্মের ক্ষেত্রে।
experimental_useFormStatus এই চ্যালেঞ্জটিকে একটি কেন্দ্রীভূত এবং ডিক্লারেটিভ উপায়ে ফর্ম সাবমিশন স্ট্যাটাস ম্যানেজ করার মাধ্যমে সমাধান করে। এটি ত্রুটি ট্র্যাক করা, লোডিং স্টেট দেখানো এবং ব্যবহারকারীকে ফিডব্যাক দেওয়ার প্রক্রিয়াটিকে সহজ করে তোলে, যার ফলে কোড আরও পরিষ্কার, রক্ষণাবেক্ষণযোগ্য এবং পারফরম্যান্ট হয়।
experimental_useFormStatus কী?
experimental_useFormStatus হুকটি একটি React হুক যা বিশেষভাবে একটি ফর্ম সাবমিশনের স্ট্যাটাস সম্পর্কে তথ্য দেওয়ার জন্য ডিজাইন করা হয়েছে। এটি <form> এলিমেন্টের action অ্যাট্রিবিউট এবং সার্ভার অ্যাকশন (আরেকটি অপেক্ষাকৃত নতুন React ফিচার) এর সাথে একসাথে কাজ করে। যখন একটি সার্ভার অ্যাকশনকে নির্দেশ করে এমন action সহ একটি ফর্ম সাবমিট করা হয়, তখন experimental_useFormStatus সেই সাবমিশনের বর্তমান অবস্থা সম্পর্কে ডেটা সরবরাহ করে।
বিশেষত, এই হুকটি একটি অবজেক্ট রিটার্ন করে যাতে নিম্নলিখিত প্রপার্টিগুলো থাকে:
pending: একটি বুলিয়ান ভ্যালু যা নির্দেশ করে যে ফর্ম সাবমিশন বর্তমানে চলছে কিনা।data: ফর্ম দ্বারা জমা দেওয়া ডেটা।method: ফর্ম সাবমিশনের জন্য ব্যবহৃত HTTP মেথড (যেমন, "POST", "GET")।action: ফর্ম সাবমিশনের মাধ্যমে ট্রিগার হওয়া সার্ভার অ্যাকশন।error: একটি এরর অবজেক্ট, যদি ফর্ম সাবমিশন ব্যর্থ হয়। এই অবজেক্টে সার্ভারে সংঘটিত ত্রুটি সম্পর্কে তথ্য থাকবে।
কিভাবে experimental_useFormStatus ব্যবহার করবেন
আসুন experimental_useFormStatus কিভাবে ব্যবহার করতে হয় তা বোঝানোর জন্য একটি ব্যবহারিক উদাহরণ দেখি। আমরা নাম, ইমেল এবং বার্তার জন্য ফিল্ডসহ একটি সাধারণ কন্টাক্ট ফর্ম তৈরি করব এবং দেখাব কিভাবে হুকটি লোডিং ইন্ডিকেটর এবং এরর মেসেজ দেখানোর জন্য ব্যবহার করা যায়।
পূর্বশর্ত
শুরু করার আগে, নিশ্চিত করুন যে আপনার একটি React প্রজেক্ট সেট আপ করা আছে এবং আপনি এমন একটি React সংস্করণ ব্যবহার করছেন যা এক্সপেরিমেন্টাল ফিচার সমর্থন করে। আপনার react.config.js ফাইলে (অথবা আপনার বিল্ড টুলের জন্য সমতুল্য কনফিগারেশন) এক্সপেরিমেন্টাল ফিচার সক্রিয় করার প্রয়োজন হতে পারে। এছাড়াও, নিশ্চিত করুন যে আপনার একটি ব্যাকএন্ড (যেমন, Express সহ Node.js) ফর্ম সাবমিশন হ্যান্ডেল করার এবং উপযুক্ত প্রতিক্রিয়া ফেরৎ দেওয়ার জন্য কনফিগার করা আছে।
উদাহরণ: কন্টাক্ট ফর্ম
এখানে React কম্পোনেন্ট কোডটি দেওয়া হলো:
import React, { useState } from 'react';
import { experimental_useFormStatus as useFormStatus } from 'react-dom';
async function handleSubmit(formData) {
'use server';
try {
const response = await fetch('/api/contact', {
method: 'POST',
body: formData,
});
if (!response.ok) {
const errorData = await response.json();
throw new Error(errorData.message || 'Form submission failed');
}
// Handle successful submission (e.g., redirect, show success message)
console.log('Form submitted successfully!');
// In a real application, you might redirect or update state here
return { success: true, message: 'Form submitted successfully!' };
} catch (error) {
console.error('Error submitting form:', error);
return { success: false, message: error.message };
}
}
function ContactForm() {
const [formData, setFormData] = useState({
name: '',
email: '',
message: '',
});
const { pending, data, error } = useFormStatus();
const handleChange = (e) => {
setFormData({ ...formData, [e.target.name]: e.target.value });
};
return (
);
}
export default ContactForm;
ব্যাখ্যা
useFormStatusইম্পোর্ট করুন: আমরাreact-domথেকেexperimental_useFormStatusহুকটি ইম্পোর্ট করি। মনে রাখবেন এটি একটি এক্সপেরিমেন্টাল ফিচার, তাই ভবিষ্যতের React সংস্করণে ইম্পোর্ট পাথ পরিবর্তিত হতে পারে।- ফর্ম স্টেট:
useStateব্যবহার করেformDataনামে একটি স্টেট ভেরিয়েবল ব্যবহারকারীর প্রবেশ করানো নাম, ইমেল এবং বার্তা ট্র্যাক করে। useFormStatusহুক: আমরা কম্পোনেন্টের মধ্যেuseFormStatus()কল করি। যখন ফর্মটি একটি সার্ভার অ্যাকশনের মাধ্যমে সাবমিট করা হয়, তখন এই হুকটি স্বয়ংক্রিয়ভাবে ফর্মের সাবমিশন স্ট্যাটাস সম্পর্কে তথ্য প্রদান করে।- স্ট্যাটাস প্রপার্টি অ্যাক্সেস করা: আমরা
useFormStatus()দ্বারা রিটার্ন করা অবজেক্ট থেকেpending,data, এবংerrorএক্সট্র্যাক্ট করি। - লোডিং ইন্ডিকেটর: আমরা
pendingবুলিয়ান ব্যবহার করে সাবমিট বাটনে শর্তসাপেক্ষে একটি "Submitting..." বার্তা রেন্ডার করি এবং একাধিক সাবমিশন রোধ করতে বাটনটি নিষ্ক্রিয় করি। - এরর হ্যান্ডলিং: ফর্ম সাবমিশনের সময় যদি কোনো ত্রুটি ঘটে (যা
errorপ্রপার্টি দ্বারা নির্দেশিত হয়), আমরা ব্যবহারকারীকে একটি এরর মেসেজ দেখাই। - সফলতার বার্তা: যদি সাবমিশন সফল হয় (সার্ভার অ্যাকশন { success: true, message: '...' } রিটার্ন করার মাধ্যমে নির্ধারিত), আমরা একটি সফলতার বার্তা দেখাই।
- সার্ভার অ্যাকশন:
handleSubmitফাংশনটিকে'use server'দিয়ে চিহ্নিত করা হয়েছে, যা এটিকে একটি সার্ভার অ্যাকশন বানায়। এটিfetchব্যবহার করে ফর্ম ডেটা একটি API এন্ডপয়েন্টে (/api/contact) পাঠায়। - সার্ভার অ্যাকশনে এরর হ্যান্ডলিং: সার্ভার অ্যাকশনটি API কল এবং সম্ভাব্য ত্রুটিগুলি পরিচালনা করার চেষ্টা করে। যদি API প্রতিক্রিয়াতে কোনো ত্রুটি বা ব্যতিক্রম থাকে, তবে এটি
{ success: false, message: '...' }রিটার্ন করে। এই বার্তাটি তখনuseFormStatusহুকেরerrorপ্রপার্টিতে উপলব্ধ থাকে। - অ্যাকশন অ্যাট্রিবিউট:
<form>ট্যাগেরactionঅ্যাট্রিবিউটটিhandleSubmitসার্ভার অ্যাকশনে সেট করা হয়। এটি React-কে বলে যে ফর্ম সাবমিট করার সময় এই ফাংশনটি ব্যবহার করতে হবে।
ব্যাকএন্ড (Node.js এবং Express ব্যবহার করে সরলীকৃত উদাহরণ)
এখানে ফর্ম সাবমিশন হ্যান্ডেল করার জন্য Express ব্যবহার করে একটি Node.js সার্ভারের একটি খুব প্রাথমিক উদাহরণ দেওয়া হলো:
const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const app = express();
const port = 3001;
app.use(cors());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.post('/api/contact', (req, res) => {
const { name, email, message } = req.body;
// Simulate server-side validation or processing (e.g., sending an email)
if (!name || !email || !message) {
return res.status(400).json({ message: 'All fields are required.' });
}
if (!email.includes('@')) {
return res.status(400).json({message: 'Invalid email format.'});
}
// Simulate a successful operation with a delay
setTimeout(() => {
console.log('Form data received:', { name, email, message });
res.status(200).json({ message: 'Form submitted successfully!' });
}, 1000);
});
app.listen(port, () => {
console.log(`Server listening at http://localhost:${port}`);
});
ব্যাকএন্ডের জন্য গুরুত্বপূর্ণ বিবেচ্য বিষয়:
- ভ্যালিডেশন: ডেটার অখণ্ডতা এবং নিরাপত্তা নিশ্চিত করতে সর্বদা সার্ভার-সাইড ভ্যালিডেশন করুন।
- এরর হ্যান্ডলিং: অপ্রত্যাশিত সমস্যা ধরতে এবং ক্লায়েন্টকে অর্থপূর্ণ এরর মেসেজ ফেরত দিতে শক্তিশালী এরর হ্যান্ডলিং প্রয়োগ করুন।
- নিরাপত্তা: ক্রস-সাইট স্ক্রিপ্টিং (XSS) এবং SQL ইনজেকশনের মতো নিরাপত্তা ঝুঁকি প্রতিরোধ করতে সমস্ত ইনপুট ডেটা স্যানিটাইজ এবং ভ্যালিডেট করুন।
- CORS: আপনার React অ্যাপ্লিকেশনের ডোমেন থেকে অনুরোধের অনুমতি দেওয়ার জন্য ক্রস-অরিজিন রিসোর্স শেয়ারিং (CORS) সঠিকভাবে কনফিগার করুন।
- JSON রেসপন্স: ক্লায়েন্টকে উপযুক্ত HTTP স্ট্যাটাস কোড সহ JSON রেসপন্স ফেরত দিন (যেমন, সফলতার জন্য 200, ক্লায়েন্ট এররের জন্য 400, সার্ভার এররের জন্য 500)।
experimental_useFormStatus ব্যবহারের সুবিধা
- সরলীকৃত ফর্ম ম্যানেজমেন্ট: ফর্ম সাবমিশন স্ট্যাটাসের কেন্দ্রীভূত ব্যবস্থাপনা বয়লারপ্লেট কোড কমায় এবং কোডের পঠনযোগ্যতা উন্নত করে।
- উন্নত ব্যবহারকারীর অভিজ্ঞতা: ফর্ম সাবমিশন স্ট্যাটাসের উপর রিয়েল-টাইম ফিডব্যাক (লোডিং ইন্ডিকেটর, এরর মেসেজ) ব্যবহারকারীর সম্পৃক্ততা বাড়ায় এবং হতাশা কমায়।
- উন্নত এরর হ্যান্ডলিং: বিস্তারিত এরর তথ্যে সহজ অ্যাক্সেস আরও নির্দিষ্ট এরর হ্যান্ডলিং এবং উন্নত ডিবাগিংয়ের সুযোগ দেয়।
- ডিক্লারেটিভ অ্যাপ্রোচ: হুকটি ফর্ম স্ট্যাটাস পরিচালনা করার একটি ডিক্লারেটিভ উপায় সরবরাহ করে, যা কোডকে আরও অনুমানযোগ্য এবং বুঝতে সহজ করে তোলে।
- সার্ভার অ্যাকশনের সাথে ইন্টিগ্রেশন: React সার্ভার অ্যাকশনের সাথে নির্বিঘ্ন ইন্টিগ্রেশন ডেটা ফেচিং এবং মিউটেশনকে সহজ করে, যা আরও দক্ষ এবং পারফরম্যান্ট অ্যাপ্লিকেশন তৈরি করে।
উন্নত ব্যবহারের ক্ষেত্র
সাধারণ উদাহরণের বাইরেও, experimental_useFormStatus আরও জটিল পরিস্থিতিতে ব্যবহার করা যেতে পারে:
১. একটি পেজে একাধিক ফর্ম হ্যান্ডেল করা
যদি আপনার একটি পেজে একাধিক ফর্ম থাকে, তবে প্রতিটি ফর্মের নিজস্ব useFormStatus ইনস্ট্যান্স থাকবে, যা আপনাকে তাদের সাবমিশন স্ট্যাটাস স্বাধীনভাবে ট্র্যাক করতে দেবে।
২. কাস্টম ভ্যালিডেশন লজিক প্রয়োগ করা
আপনি রিয়েল-টাইমে ভ্যালিডেশন এরর দেখানোর জন্য useFormStatus-কে কাস্টম ভ্যালিডেশন লজিকের সাথে একীভূত করতে পারেন। উদাহরণস্বরূপ, আপনি সার্ভারে ডেটা জমা দেওয়ার আগে ক্লায়েন্ট-সাইডে ফর্ম ডেটা যাচাই করার জন্য Yup বা Zod-এর মতো একটি ভ্যালিডেশন লাইব্রেরি ব্যবহার করতে পারেন। এরপর সার্ভার অ্যাকশন ব্যাকএন্ড নিয়মের উপর ভিত্তি করে ভ্যালিডেশন এরর রিটার্ন করতে পারে যা useFormStatus ব্যবহার করে দেখানো যেতে পারে।
৩. অপটিমিস্টিক আপডেট
আপনি অপটিমিস্টিক আপডেট প্রয়োগ করার জন্য useFormStatus ব্যবহার করতে পারেন, যেখানে ব্যবহারকারী ফর্ম জমা দেওয়ার সাথে সাথে আপনি UI আপডেট করেন, এই ভেবে যে সাবমিশনটি সফল হবে। যদি সাবমিশন ব্যর্থ হয়, আপনি UI-কে তার আগের অবস্থায় ফিরিয়ে আনতে পারেন এবং একটি এরর মেসেজ দেখাতে পারেন।
৪. ফাইল আপলোডের জন্য প্রগ্রেস ইন্ডিকেটর
যদিও useFormStatus সরাসরি ফাইল আপলোডের জন্য প্রগ্রেস আপডেট প্রদান করে না, আপনি ব্যবহারকারীকে প্রগ্রেস ইন্ডিকেটর দেখানোর জন্য এটিকে অন্যান্য কৌশলের (যেমন, XMLHttpRequest অবজেক্ট এবং এর upload.onprogress ইভেন্ট ব্যবহার করে) সাথে একত্রিত করতে পারেন।
সাধারণ ভুল এবং সেগুলি এড়ানোর উপায়
- সার্ভার অ্যাকশন ব্যবহার না করা:
experimental_useFormStatusমূলত React সার্ভার অ্যাকশনের সাথে কাজ করার জন্য ডিজাইন করা হয়েছে। আপনি যদি সার্ভার অ্যাকশন ব্যবহার না করেন, তবে আপনাকে ম্যানুয়ালি ফর্ম সাবমিশন স্ট্যাটাস পরিচালনা করতে হবে এবং সেই অনুযায়ী UI আপডেট করতে হবে, যা এই হুক ব্যবহারের উদ্দেশ্যকে ব্যাহত করে। - সার্ভারে ভুল এরর হ্যান্ডলিং: নিশ্চিত করুন যে আপনার সার্ভার-সাইড কোড ত্রুটিগুলি সুন্দরভাবে পরিচালনা করে এবং ক্লায়েন্টকে অর্থপূর্ণ এরর মেসেজ ফেরত দেয়।
useFormStatusহুকেরerrorপ্রপার্টি শুধুমাত্র সার্ভারে ঘটে যাওয়া ত্রুটি সম্পর্কে তথ্য ধারণ করবে। - সম্ভাব্য নিরাপত্তা ঝুঁকি উপেক্ষা করা: নিরাপত্তা ঝুঁকি প্রতিরোধ করতে সর্বদা ক্লায়েন্ট-সাইড এবং সার্ভার-সাইড উভয় দিকেই ব্যবহারকারীর ইনপুট স্যানিটাইজ এবং ভ্যালিডেট করুন।
- ব্যবহারকারীকে ফিডব্যাক না দেওয়া: ফর্ম সাবমিশন স্ট্যাটাস (লোডিং ইন্ডিকেটর, এরর মেসেজ, সফলতার বার্তা) সম্পর্কে ব্যবহারকারীকে স্পষ্ট এবং সময়মত ফিডব্যাক দেওয়া অত্যন্ত গুরুত্বপূর্ণ। এটি ব্যবহারকারীর অভিজ্ঞতা বাড়ায় এবং হতাশা কমায়।
experimental_useFormStatus ব্যবহারের সেরা অনুশীলন
- অর্থপূর্ণ এরর মেসেজ ব্যবহার করুন: স্পষ্ট এবং সংক্ষিপ্ত এরর মেসেজ প্রদান করুন যা ব্যবহারকারীকে বুঝতে সাহায্য করে যে কী ভুল হয়েছে এবং কীভাবে এটি ঠিক করা যায়।
- ক্লায়েন্ট-সাইড ভ্যালিডেশন প্রয়োগ করুন: অপ্রয়োজনীয় সার্ভার অনুরোধ কমাতে এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে সার্ভারে জমা দেওয়ার আগে ক্লায়েন্ট-সাইডে ফর্ম ডেটা যাচাই করুন।
- ত্রুটি সুন্দরভাবে পরিচালনা করুন: অপ্রত্যাশিত সমস্যা ধরতে এবং আপনার অ্যাপ্লিকেশনকে ক্র্যাশ হওয়া থেকে রক্ষা করতে শক্তিশালী এরর হ্যান্ডলিং প্রয়োগ করুন।
- আপনার ফর্মগুলি পুঙ্খানুপুঙ্খভাবে পরীক্ষা করুন: বিভিন্ন ইনপুট এবং পরিস্থিতি দিয়ে আপনার ফর্মগুলি পরীক্ষা করুন যাতে সেগুলি সঠিকভাবে কাজ করছে এবং এরর হ্যান্ডলিং প্রত্যাশা অনুযায়ী কাজ করছে তা নিশ্চিত করা যায়।
- আপনার কোড পরিষ্কার এবং পঠনযোগ্য রাখুন: আপনার কোডকে বোঝা এবং রক্ষণাবেক্ষণ করা সহজ করার জন্য বর্ণনামূলক ভেরিয়েবলের নাম এবং মন্তব্য ব্যবহার করুন।
- অ্যাক্সেসিবিলিটিকে অগ্রাধিকার দিন: আপনার ফর্মগুলি যাতে প্রতিবন্ধী ব্যক্তিসহ সকল ব্যবহারকারীর জন্য অ্যাক্সেসযোগ্য হয় তা নিশ্চিত করুন। সেমান্টিক HTML ব্যবহার করুন, ফর্ম ফিল্ডের জন্য সঠিক লেবেল সরবরাহ করুন এবং এরর মেসেজগুলি যাতে স্পষ্টভাবে দৃশ্যমান এবং বোধগম্য হয় তা নিশ্চিত করুন।
আন্তর্জাতিকীকরণের বিবেচ্য বিষয়
বিশ্বব্যাপী দর্শকদের জন্য ফর্ম তৈরি করার সময়, নিম্নলিখিত আন্তর্জাতিকীকরণের দিকগুলি বিবেচনা করুন:
- এরর মেসেজের স্থানীয়করণ: নিশ্চিত করুন যে এরর মেসেজগুলি ব্যবহারকারীর পছন্দের ভাষায় অনুবাদ করা হয়েছে। অনুবাদ পরিচালনা করতে আপনি
i18next-এর মতো একটি স্থানীয়করণ লাইব্রেরি ব্যবহার করতে পারেন। - তারিখ এবং সংখ্যা ফরম্যাটিং: ব্যবহারকারীর লোকেল অনুযায়ী উপযুক্ত তারিখ এবং সংখ্যার ফর্ম্যাট ব্যবহার করুন।
- ঠিকানার ফর্ম্যাট: বিভিন্ন দেশের ঠিকানার ফর্ম্যাটের সাথে মেলানোর জন্য ঠিকানা ফর্ম ফিল্ডগুলিকে অভিযোজিত করুন। উদাহরণস্বরূপ, কিছু দেশ শহরের নামের আগে পোস্টাল কোড ব্যবহার করে, আবার অন্যেরা পরে ব্যবহার করে।
- ফোন নম্বর ভ্যালিডেশন: এমন ফোন নম্বর ভ্যালিডেশন প্রয়োগ করুন যা বিভিন্ন দেশের কোড এবং ফোন নম্বর ফর্ম্যাট সমর্থন করে।
- ডান-থেকে-বাম (RTL) লেআউট: আরবি এবং হিব্রুর মতো ভাষার জন্য RTL লেআউট সমর্থন করুন।
উদাহরণস্বরূপ, একটি ফর্ম যা একটি ফোন নম্বর চাইছে, ব্যবহারকারীর নির্বাচিত দেশের উপর নির্ভর করে তার ভ্যালিডেশন নিয়মগুলি গতিশীলভাবে সামঞ্জস্য করা উচিত। একটি মার্কিন ফোন নম্বরের জন্য ১০-সংখ্যার নম্বর প্রয়োজন হবে, যেখানে একটি ইউকে ফোন নম্বরের জন্য প্রথম শূন্যসহ ১১টি সংখ্যা প্রয়োজন হতে পারে। একইভাবে, "Invalid phone number format"-এর মতো এরর মেসেজ ব্যবহারকারীর ভাষায় অনুবাদ করতে হবে।
উপসংহার
experimental_useFormStatus React-এর টুলকিটে একটি মূল্যবান সংযোজন, যা ফর্ম সাবমিশন স্ট্যাটাস পরিচালনা করার একটি সুবিন্যস্ত এবং ডিক্লারেটিভ উপায় প্রদান করে। এই হুকটি ব্যবহার করে, ডেভেলপাররা আরও শক্তিশালী, ব্যবহারকারী-বান্ধব এবং রক্ষণাবেক্ষণযোগ্য ফর্ম তৈরি করতে পারেন। যেহেতু এই ফিচারটি বর্তমানে পরীক্ষামূলক, তাই সর্বশেষ React ডকুমেন্টেশন এবং কমিউনিটির সেরা অনুশীলনগুলির সাথে আপডেট থাকতে ভুলবেন না। আপনার ফর্ম হ্যান্ডলিং ক্ষমতাকে উন্নত করতে এবং আপনার অ্যাপ্লিকেশনগুলির জন্য ব্যতিক্রমী ব্যবহারকারীর অভিজ্ঞতা তৈরি করতে এই শক্তিশালী টুলটি গ্রহণ করুন।