فرم‌ها در React – ارسال داده با onSubmit و action در فرم‌های جستجو

فرم‌ها بخش جدایی‌ناپذیر هر اپلیکیشن مدرن هستند. در این مقاله، نحوهٔ ساخت فرم جستجو در React را بررسی می‌کنیم. ابتدا از onSubmit برای مدیریت ارسال فرم استفاده می‌کنیم و سپس با معرفی ویژگی action، فرم را به رفتار بومی HTML نزدیک‌تر می‌کنیم. این ساختار باعث افزایش خوانایی، قابلیت استفاده با صفحه‌کلید، و آمادگی برای نسخه‌های آیندهٔ React می‌شود.

React formsonSubmitactionpreventDefault

~2 دقیقه مطالعه • بروزرسانی ۲ آبان ۱۴۰۴

مقدمه


فرم‌ها در React مانند HTML عمل می‌کنند، اما با قدرت مدیریت وضعیت و رویدادها. در این مقاله، فرم جستجو را با استفاده از input و button پیاده‌سازی می‌کنیم و سپس آن را به کامپوننت جداگانه تبدیل می‌کنیم. در ادامه، ویژگی action را جایگزین onSubmit می‌کنیم تا فرم به رفتار بومی HTML نزدیک‌تر شود.


ساخت فرم با onSubmit


ابتدا input و button را درون یک فرم قرار می‌دهیم و از onSubmit برای مدیریت ارسال استفاده می‌کنیم:


<form onSubmit={handleSearchSubmit}>
  <InputWithLabel ... />
  <button type="submit">Submit</button>
</form>

در تابع handleSearchSubmit از event.preventDefault() استفاده می‌کنیم تا از رفرش شدن صفحه جلوگیری شود:


const handleSearchSubmit = (event) => {
  setUrl(`${API_ENDPOINT}${searchTerm}`);
  event.preventDefault();
};

استخراج فرم به کامپوننت جداگانه


فرم را به کامپوننت SearchForm تبدیل می‌کنیم تا کد خواناتر و قابل استفاده مجدد شود:


const SearchForm = ({ searchTerm, onSearchInput, onSearchSubmit }) => (
  <form onSubmit={onSearchSubmit}>
    <InputWithLabel ... />
    <button type="submit">Submit</button>
  </form>
);

استفاده از action به‌جای onSubmit


در نسخه‌های جدیدتر React، می‌توان از ویژگی action برای ارسال فرم استفاده کرد. این ویژگی تابعی را اجرا می‌کند که داده‌ها را پردازش می‌کند:


const SearchForm = ({ searchTerm, onSearchInput, searchAction }) => (
  <form action={searchAction}>
    <InputWithLabel ... />
    <button type="submit">Submit</button>
  </form>
);

در این حالت، دیگر نیازی به preventDefault() نیست، زیرا فرم به‌صورت بومی مدیریت می‌شود:


const searchAction = () => {
  setUrl(`${API_ENDPOINT}${searchTerm}`);
};

مزایای استفاده از فرم در React


  • افزایش ساختار و خوانایی HTML
  • امکان ارسال با کلید Enter
  • قابلیت استفاده مجدد با کامپوننت‌های جداگانه
  • آمادگی برای نسخه‌های آینده React با استفاده از action

جمع‌بندی


فرم‌ها در React ابزاری قدرتمند برای دریافت و ارسال داده هستند. با استفاده از onSubmit و سپس action، می‌توان فرم‌هایی ساخت که هم خوانا باشند و هم با رفتار بومی HTML سازگار. این ساختار باعث افزایش تجربه کاربری و توسعه‌پذیری اپلیکیشن می‌شود.


نوشته و پژوهش شده توسط دکتر شاهین صیامی