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

x32x01
  • بواسطة x32x01 ||
  • #1
تخيل معايا كده يا صديقي 😄.. بتعمل 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
المشاهدات
631
x32x01
x32x01
x32x01
الردود
0
المشاهدات
618
x32x01
x32x01
x32x01
الردود
0
المشاهدات
531
x32x01
x32x01
x32x01
الردود
0
المشاهدات
887
x32x01
x32x01
x32x01
الردود
0
المشاهدات
277
x32x01
x32x01
الوسوم : الوسوم
errormessage field formik forms npm install react validation yup إدارة البيانات تسجيل الدخول
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟

آخر المشاركات

إحصائيات المنتدى
المواضيع
2,388
المشاركات
2,601
أعضاء أكتب كود
574
أخر عضو
الياس
عودة
أعلى