درک فرمها در React
کاربران از طریق فرمها با اپلیکیشنهای وب تعامل دارند. شما از آنها برای ورود، جستجو و صفحات تماس استفاده میکنید. React مدیریت این دادهها را از طریق state ساده میکند.
کامپوننتهای کنترلشده (Controlled Components)
در React، شما اغلب از کامپوننتهای کنترلشده استفاده میکنید. این بدان معناست که state در React مقدار ورودی را مدیریت میکند.
نحوه عملکرد:
• ویژگی value ورودی را به state شما متصل میکند.
• رویداد onChange همزمان با تایپ کاربر، state را بهروزرسانی میکند.
• React به عنوان تنها منبع حقیقت (single source of truth) باقی میماند.
این فرآیند از این جریان پیروی میکند:
ورودی کاربر → رویداد onChange → بهروزرسانی state → Re-render → رابط کاربری بهروزرسانیشده
مدیریت چندین فیلد
شما برای هر ورودی نیازی به یک state جداگانه ندارید. میتوانید از یک object برای ذخیره تمام دادهها استفاده کنید.
از این الگو استفاده کنید:
• از یک object واحد برای state کل فرم استفاده کنید.
• از ویژگی name در ورودیهای خود استفاده کنید.
• یک تابع handleChange واحد برای بهروزرسانی state ایجاد کنید.
نحوهی استفاده از [e.target.name]: e.target.value فیلد خاصی را که باعث ایجاد تغییر شده است، بهروزرسانی میکند. این کار باعث تمیز ماندن کد شما میشود.
مدیریت ارسال فرم (Submissions)
وقتی کاربر فرمی را ارسال میکند، مرورگر بهطور پیشفرض صفحه را رفرش میکند. این کار باعث از کار افتادن اپلیکیشن شما میشود.
از e.preventDefault() در داخل تابع onSubmit خود استفاده کنید. این کار از بارگذاری مجدد صفحه جلوگیری کرده و اجازه میدهد React دادهها را مدیریت کند.
انواع ورودیهای خاص
ورودیهای مختلف به ویژگیهای متفاوتی نیاز دارند:
• ورودیهای متنی از e.target.value استفاده میکنند.
• چکباکسها از e.target.checked استفاده میکنند.
• منوهای Select از ویژگی value برای ردیابی گزینه انتخابشده استفاده میکنند.
نکات اعتبارسنجی (Validation)
همیشه قبل از ارسال دادهها، آنها را اعتبارسنجی کنید. موارد زیر را بررسی کنید: • فیلدهای اجباری. • فرمتهای صحیح ایمیل. • حداقل طول رمز عبور.
بهترین روشها برای فرمهای React
- به جای refs از کامپوننتهای کنترلشده استفاده کنید.
- فیلدهای مرتبط را در یک object واحد ذخیره کنید.
- برای هر ورودی از ویژگیهای
nameمعنادار استفاده کنید. - از بارگذاری مجدد پیشفرض صفحه هنگام ارسال جلوگیری کنید.
- از یک change handler واحد برای تمام ورودیهای متنی استفاده کنید.
تسلط بر این مراحل به شما کمک میکند تا اپلیکیشنهای وب حرفهای بسازید.
منبع: https://dev.to/aj_arul/understanding-forms-in-react-19gj