'use server'This feature is available in the latest Canary

Canary

هذه التوجيهات لازمة فقط إذا كنت تستخدم RSC (مكونات الخادم) أو تبني مكتبة متوافقة معها.

'use server' يميّز دوال الخادم (server-side functions) التي يمكن استدعاؤها في الكود من جانب العميل (client-side).


المرجع

'use server'

أضف 'use server'; في أعلى دالة غير متزامنة (async) لتمييز أن الدالة يمكن تنفيذها من قبل العميل.

async function addToCart(data) {
'use server';
// ...
}

// <ProductDetailPage addToCart={addToCart} />

يمكن تمرير هذه الدالة إلى العميل، عندما تُستدعى، ستنفذ طلب شبكة إلى الخادم يتضمن نسخة متسلسلة من أي معاملات تم تمريرها. إذا كانت دالة الخادم ترجع قيمة، سيتم تسلسلها وإرجاعها إلى العميل.

أو بدلا من ذلك، أضف 'use server'; في أعلى ملف لتمييز كل التصديرات في هذا الملف كدوال خادم غير متزامنة يمكن استخدامها في أي مكان، بما في ذلك استيرادها في ملفات مكونات العميل.

ملاحظات

  • تذكر أن المعاملات الممررة إلى دالة مميزة بـ 'use server' متحكم بها بالكامل من جانب العميل. للأمان، عاملها دائمًا كإدخال غير موثوق به، وتأكد من التحقق من صحتها وتصفيتها كما يناسبك.
  • لتجنب الارتباك الذي قد يحدثه خلط الكود من جانب العميل والخادم في نفس الملف، يمكن استخدام 'use server' فقط في ملفات الخادم؛ يمكن تمرير الدوال الناتجة إلى مكونات العميل عبر الخصائص.
  • لأن الاستدعاءات الشبكية الأساسية دائمًا غير متزامنة، يمكن استخدام 'use server' فقط في دوال غير متزامنة (async).
  • التوجيهات مثل 'use server' يجب أن تكون في أعلى الدالة أو الملف، فوق أي كود آخر بما في ذلك الاستيرادات (التعليقات فوق التوجيهات مقبولة). يجب كتابتها بعلامات تنصيص مفردة ('use server') أو مزدوجة ("use server")، وليس علامات تنصيص عكسية backticks (`use server`). (تشبه تنسيق التوجيهات 'use xyz' تنسيق تسمية الـ Hooks useXyz()، لكن هذا التشابه محض مصادفة.)

الاستخدام

Under Construction

هذا القسم لم يكتمل بعد.

يمكن استخدام هذا النهج في أي إطار عمل يدعم مكونات الخادم. يمكنك العثور على مظيد من المعلومات منهم: