تكرار السؤال: …
الإجابة المختصرة
نعرف مخطط التحقق (Zod Schema) ونستخرج نوع TypeScript منه بواسطة z.infer، ثم نربطه بنموذج ريأكت عبر zodResolver للتحقق المتزامن من البيانات.
الشرح
يوفر Zod أسلوباً تعريفياً للتحقق من صحة البيانات على العميل والخادم في آن واحد. عبر دمج zodResolver مع React Hook Form، يتم فحص المدخلات تلقائياً ومطابقة الرسائل التوضيحية وتوفير الإكمال التلقائي لأنواع الـ Form بدقة تامة وبدون أي تكرار لتعريف الـ Types.
مثال بالكود
import { z } from 'zod';
import { useForm } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
const loginSchema = z.object({
email: z.string().email("بريد إلكتروني غير صالح"),
password: z.string().min(8, "كلمة المرور يجب ألا تقل عن 8 خانات")
});
type LoginFormValues = z.infer<typeof loginSchema>;
function Form() {
const { register, handleSubmit, formState: { errors } } = useForm<LoginFormValues>({
resolver: zodResolver(loginSchema)
});
// استخدام آمن للأنواع مع التحقق التلقائي
}أخطاء شائعة
- تكرار كتابة واجهة TypeScript منفصلة تماماً عن كائن التحقق Zod Schema.
أسئلة متابعة
- كيف تبني معالج نماذج متعدد الخطوات (Multi-step Wizard Form) مع الحفاظ على البيانات عند الرجوع؟
- لماذا تعتبر مكتبة React Hook Form (RHF) متفوقة في الأداء مقارنة بنماذج Formik التقليدية؟