0Pricing
React Academy · درس

البدء باستخدام React Hook Form

ثبّت RHF، واستدعِ useForm، وسجّل حقول الإدخال، وعالج إرسال النموذج.

البدء باستخدام React Hook Form درس مجاني في React Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في React Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة React Academy 4 دروس في المجموع.

مرحبًا

في هذا الدرس ستثبّتون React Hook Form، وتستدعون useForm، وتسجّلون الحقول، وتعالجون عمليات إرسال النماذج دون إدارة متغيرات الحالة الفردية.

لماذا React Hook Form؟

تتطلب النماذج التقليدية المُتحكَّم بها في React استخدام useState لكل حقل وonChange لكل إدخال. يدير React Hook Form (RHF) كل ذلك داخليًا باستخدام إدخالات غير مُتحكَّم بها، مما يمنحكم واجهة برمجية أبسط مع عدد أقل من عمليات إعادة التصيير.

التثبيت

ثبّتوا الحزمة. لا حاجة إلى تبعيات إضافية من نوع peer dependencies للاستخدام الأساسي.
npm install react-hook-form

خطاف useForm

استدعوا useForm() للحصول على دالة register، وغلاف handleSubmit، وformState. هذه هي الأجزاء الأساسية الثلاثة التي تحتاجون إليها في أي نموذج.
import { useForm } from 'react-hook-form';

function LoginForm() {
  const { register, handleSubmit, formState: { errors } } = useForm();
  const onSubmit = data => console.log(data);
  return (
    <form onSubmit={handleSubmit(onSubmit)}>
      ...
    </form>
  );
}

تسجيل حقول الإدخال

انشروا نتيجة register('fieldName') على كل إدخال. يربط RHF مرجعًا ومعالجات أحداث بالإدخال داخليًا، لذلك لا حاجة إلى value أو onChange.
<input {...register('email')} type="email" />
<input {...register('password')} type="password" />
<button type="submit">Log in</button>

دالة الاستدعاء onSubmit

يتحقق handleSubmit من صحة جميع الحقول، ثم يستدعي دالة الاستدعاء onSubmit الخاصة بكم مع كائن بيانات ذي أنواع محددة فقط عندما يكون النموذج صالحًا. وإذا فشل التحقق، فإنه يملأ formState.errors بدلًا من ذلك.
const onSubmit = (data) => {
  // data = { email: 'a@b.com', password: 'secret' }
  loginUser(data);
};

القيم الافتراضية

مرّروا `defaultValues` إلى useForm لملء حقول النموذج مسبقًا. يفيد ذلك في نماذج التعديل التي تحمّل بيانات موجودة مسبقًا.
const { register } = useForm({
  defaultValues: { email: user.email, name: user.name },
});

خصائص formState

يوفّر formState قيمًا منطقية مفيدة: `isSubmitting`، وتكون true أثناء تشغيل handleSubmit؛ و`isDirty`، وتكون true إذا تغيّر أي حقل؛ و`isValid`، وتكون true عند عدم وجود أخطاء؛ بالإضافة إلى كائن `errors`.
const { formState: { isSubmitting, isDirty, isValid, errors } } = useForm();

إعادة ضبط النموذج

استدعوا `reset()` لمسح جميع الحقول وإعادة ضبط formState. ويمكنكم اختياريًا تمرير قيم افتراضية جديدة.
const { reset } = useForm();

const onSubmit = async (data) => {
  await saveData(data);
  reset(); // clear after submit
};

ميزة الأداء

لأن RHF يستخدم إدخالات غير مُتحكَّم بها، فلا يُعاد تصيير النموذج مع كل ضغطة مفتاح، بخلاف نماذج React المُتحكَّم بها. ولا تتسبب في إعادة التصيير إلا أخطاء التحقق وحالة الإرسال، مما يجعل النماذج الكبيرة سريعة الاستجابة.

تحقّق سريع

ماذا يحدث عند استدعاء handleSubmit(onSubmit) عندما يرسل المستخدم النموذج؟

مراجعة

ثبّتوا RHF، واستدعوا useForm للحصول على register وhandleSubmit، وانشروا register() على حقول الإدخال، وغلّفوا معالج الإرسال باستخدام handleSubmit. اضبطوا defaultValues لنماذج التعديل، واستدعوا reset() بعد نجاح الإرسال.

التالي

الدرس التالي: **قواعد التحقق ورسائل الأخطاء** — ستطبّقون قواعد التحقق المضمّنة، وستعرضون رسائل الخطأ للمستخدمين.

الأسئلة الشائعة

هل درس «البدء باستخدام React Hook Form» مجاني؟

نعم — نص درس «البدء باستخدام React Hook Form» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة React Academy، انتقل إلى CoddyKit PRO. تتضمن دورة React Academy 4 دروس في المجموع.

ماذا ستتعلم في «البدء باستخدام React Hook Form»؟

ثبّت RHF، واستدعِ useForm، وسجّل حقول الإدخال، وعالج إرسال النموذج. تتمرن على React Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ React Academy؟

لا تُشترط خبرة سابقة. React Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «البدء باستخدام React Hook Form»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس React Academy هذا؟

نعم. كل درس في React Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. البدء باستخدام React Hook Form
  2. قواعد التحقق ورسائل الخطأ
  3. التحقق من المخطط باستخدام Zod
  4. الحقول الديناميكية باستخدام useFieldArray
← العودة إلى React Academy