تعلم Formik في React لبناء الفورمز بسهولة

x32x01
  • بواسطة x32x01 ||
تخيل معايا كده يا صديقي 😄.. بتعمل Form ومش عايز تتعب نفسك في مشاكل زي التأكد من البيانات وتسليمها وغيره؟
هنا بييجي دور Formik اللي هيخلي الدنيا أسهل ويخلي الفورم يتابع البيانات أول بأول ويتأكد إنها صح، ولما تخلص يبعت كل حاجة من غير ما تكتب كود كتير ✅.

فخلينا نشوف خطوة خطوة ازاي نستخدمه لحد ما تتقنه تمامًا:

1. تنزيل مكتبة Formik 📦

أول حاجة هنعملها هي تنزيل المكتبة:
Code:
npm install formik
دلوقتي Formik جاهزة عندك وتقدر تبدأ بيها على طول.

2. إنشاء أول فورم بسيط مع Formik 📝

هنعمل فورم تسجيل دخول بسيط: Email و Password.
كل الفورم هيتلف بـ <Formik> اللي هيدير كل حاجة تلقائي.
JavaScript:
import React from 'react';
import { Formik, Form, Field } from 'formik';

const LoginForm = () => (
  <Formik
    initialValues={{ email: '', password: '' }}
    onSubmit={(values) => { console.log("البيانات اللي تم إدخالها:", values); }}
  >
    {() => (
      <Form>
        <label>Email:</label>
        <Field name="email" type="email" />
        <label>Password:</label>
        <Field name="password" type="password" />
        <button type="submit">Login</button>
      </Form>
    )}
  </Formik>
);

export default LoginForm;

هنا كل خانة بـ <Field> وFormik هيحدث البيانات من غير ما نكتب كود تاني 😎.

3. الفاليديشن مع مكتبة Yup ✅

Formik بيشتغل حلو جدًا مع Yup، اللي هتساعدنا نعمل قواعد تحقق للبيانات بسهولة.

أول حاجة هنعملها هي تنزيل Yup:
Code:
npm install yup

بعد كده نحدد قواعد الفاليديشن للفورم:
JavaScript:
import * as Yup from 'yup';

const LoginSchema = Yup.object().shape({
email: Yup.string().email('الإيميل مش صحيح').required('الإيميل مطلوب'),
password: Yup.string().min(6, 'الباسورد قصيرة').required('الباسورد مطلوبة'),
});

ونضيف validationSchema للفورم:

JavaScript:
<Formik
initialValues={{ email: '', password: '' }}
validationSchema={LoginSchema}
onSubmit={(values) => { console.log("البيانات اللي تم إدخالها:", values); }}

>

4. إظهار الأخطاء للمستخدم مباشرة ⚠️

بعد ما اتأكدنا من البيانات، لازم المستخدم يعرف الخطأ فين.
هنستخدم <ErrorMessage> من Formik لعرض الرسائل تحت كل خانة:
JavaScript:
import { ErrorMessage } from 'formik';

<Field name="email" type="email" />
<ErrorMessage name="email" component="div" className="error" />

<Field name="password" type="password" />
<ErrorMessage name="password" component="div" className="error" />
بكده أي خطأ هيظهر مباشرة تحت الخانة، سواء الباسورد قصيرة أو الإيميل مش صح.

5. استخدام Formik مع الـ Custom Components 🛠️

لو عندك Input خاص بيك وعايز تضيفه للفورم، مفيش مشكلة.
بنستخدم <Field> ونبعت props زي name، value و onChange:
JavaScript:
<Field name="email" render={({ field }) => (
<input {...field} placeholder="اكتب الإيميل بتاعك" />
)} />
وبكده تقدر تستخدم الفورمز اللي انت محتاجها بكل سهولة وتبقى متابع البيانات لحظة بلحظة 😎.

الخلاصة 🎯

Formik مع Yup هيسهلوا عليك كل حاجة تخص الفورمز في React، من متابعة البيانات لحد التأكد من صحتها وإرسالها بدون مجهود كبير.
ابدأ خطوة خطوة وهتلاقي نفسك بقيت محترف في الفورمز بسرعة 💪.
 
التعديل الأخير:
المواضيع ذات الصلة
x32x01
الردود
0
المشاهدات
475
x32x01
x32x01
x32x01
الردود
0
المشاهدات
95
x32x01
x32x01
x32x01
الردود
0
المشاهدات
458
x32x01
x32x01
x32x01
الردود
0
المشاهدات
470
x32x01
x32x01
x32x01
الردود
0
المشاهدات
501
x32x01
x32x01
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟
إحصائيات المنتدى
المواضيع
2,104
المشاركات
2,310
أعضاء أكتب كود
516
أخر عضو
Mohammed
عودة
أعلى