لماذا يهم هذا الدرس؟

فهم Server Actions واستخدامه بصورة صحيحة داخل مشروع App Router. توفر Forms وServer Actions مسار Mutation مباشرًا للخادم، لكن Validation وAuthorization وError Mapping وRevalidation تظل جزءًا من العقد.

كيف تفكر فيه؟

  • في درس Server Actions، النتيجة التي يجب أن تتحقق: Server Action ليس بديلًا عن التحقق والتفويض؛ أعد تطبيقهما داخل الحد الخادمي.
  • في سياق Server Actions، الخطر الذي يجب أن يبقى تحت السيطرة: استدعاء Server Action من Form لا يجعلها موثوقة؛ Client Input غير موثوق ويجب إعادة فحص الصلاحيات على الخادم.
  • تطبيق Server Actions: ابن Form تقوم Server Action الخاصة بها بالتحقق والتفويض والكتابة وإرجاع Field-level Error عند الفشل.
Diagram

رحلة Server Action

تطبيق عملي

في التطبيق الخاص بدرس Server Actions: Server Action ليس بديلًا عن التحقق والتفويض؛ أعد تطبيقهما داخل الحد الخادمي.

actions.tstsx
'use server';

export async function createProject(formData: FormData) {
  const name = String(formData.get('name') ?? '').trim();
  if (!name) return { error: 'Name is required' };
  await saveProject({ name });
  return { ok: true };
}

جرّب بنفسك

Practice

تمرين Server Actions

ابن Form تقوم Server Action الخاصة بها بالتحقق والتفويض والكتابة وإرجاع Field-level Error عند الفشل.

  • سجل النتيجة المتوقعة قبل التنفيذ
  • اختبر حالة صحيحة وحالة فشل مرتبطة بالدرس
  • اشرح في سطرين أين يوجد الحد المسؤول عن القرار

الخلاصة