0Pricing
React Academy · درس

شرح مكوّنات React على الخادم

افهم ماهية RSCs وكيف تختلف عن مكوّنات العميل ومتى تستخدم كلًا منها.

شرح مكوّنات React على الخادم درس مجاني في React Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في React Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة React Academy 4 دروس في المجموع.

مرحبًا

في هذا الدرس ستتعرّفون إلى ماهية مكوّنات خادم React (RSCs)، وكيف تختلف عن مكوّنات العميل، ومتى تستخدمون كل نوع.

عالما المكوّنات

يقسّم React 19 وNext.js App Router المكوّنات إلى عالمين: **مكوّنات الخادم** (تُعرض على الخادم ولا تدعم التفاعل) و**مكوّنات العميل** (تُعرض على الخادم والعميل، وتحتوي على الحالة ومعالجات الأحداث).

مكوّنات الخادم افتراضيًا

في Next.js App Router، يكون كل مكوّن مكوّن خادم افتراضيًا. ويمكنكم تفعيل وضع مكوّن العميل بإضافة 'use client' في أعلى الملف.
// Server Component (default, no directive needed)
export default async function Page() {
  const data = await fetch('/api/posts').then(r => r.json());
  return <ul>{data.map(p => <li key={p.id}>{p.title}</li>)}</ul>;
}

مكوّنات العميل

أضيفوا 'use client' في أعلى الملف لتحويله إلى مكوّن عميل. ويمكن لمكوّنات العميل استخدام useState وuseEffect ومعالجات الأحداث وواجهات المتصفح البرمجية.
'use client';
import { useState } from 'react';

export function Counter() {
  const [n, setN] = useState(0);
  return <button onClick={() => setN(n+1)}>{n}</button>;
}

إمكانات مكوّنات الخادم

يمكن لمكوّنات الخادم تنفيذ ما يلي: انتظار استعلامات قاعدة البيانات، وقراءة نظام الملفات، والوصول إلى أسرار البيئة، واستيراد الحزم الكبيرة المخصّصة للخادم فقط، والعرض دون إرسال أي JavaScript إلى العميل.
// Fetch from DB directly in the component!
import { db } from '@/lib/db';

export default async function UserList() {
  const users = await db.select().from(usersTable);
  return <ul>{users.map(u => <li key={u.id}>{u.name}</li>)}</ul>;
}

قيود مكوّنات الخادم

لا يمكن لمكوّنات الخادم استخدام useState أو useEffect أو معالجات الأحداث (مثل onClick) أو واجهات المتصفح البرمجية (مثل window وlocalStorage) أو Context. وتتطلب هذه الميزات 'use client'.

تركيب مكوّنات الخادم والعميل

النمط الشائع هو أن يجلب مكوّن الخادم البيانات ويمرّرها إلى مكوّن العميل على شكل props. يتولى الخادم البيانات، بينما يتولى العميل التفاعل.
// Server Component
export default async function Page() {
  const user = await getUser();
  return <ProfileEditor user={user} />; // client component
}

// Client Component (separate file)
'use client';
export function ProfileEditor({ user }) {
  const [name, setName] = useState(user.name);
  return <input value={name} onChange={e => setName(e.target.value)} />;
}

قاعدة الحد الفاصل للعميل

بمجرد وضع علامة 'use client' على ملف، تُعامل جميع المكوّنات التي يستوردها أيضًا كمكوّنات عميل. ويكون الحد الفاصل بين الخادم والعميل على مستوى الملف.

مكوّنات الخادم دون JavaScript

تُحوّل مكوّنات الخادم إلى HTML على الخادم. ولا يُرسل كود المكوّن الخاص بها أبدًا إلى المتصفح. ويؤدي ذلك إلى تقليل حجم حزمة JavaScript بدرجة كبيرة.

مكوّنات الخادم مقابل SSR

يعرض SSR التقليدي صفحة كاملة بصيغة HTML، لكنه يرسل جميع أكواد المكوّنات إلى العميل لإجراء hydration. أما مكوّنات الخادم فلا ترسل كودها إلى العميل مطلقًا، بل ترسل ناتج العرض فقط.

تحقق سريع

ما التوجيه الذي تضيفونه إلى الملف لتحويله إلى مكوّن عميل في React ضمن Next.js App Router؟

مراجعة

تعمل مكوّنات الخادم على الخادم، ويمكنها الوصول إلى قواعد البيانات والأسرار، ولا ترسل JavaScript إلى العميل. وتضيف مكوّنات العميل 'use client'، وتدعم الحالة والتأثيرات ومعالجات الأحداث. اركّبوا النوعين معًا: يجلب الخادم البيانات، ويتفاعل العميل معها.

التالي

الدرس التالي: **Hook ‏use() للموارد غير المتزامنة** — ستقرؤون الوعود والسياق أثناء العرض باستخدام hook ‏use() في React 19.

الأسئلة الشائعة

هل درس «شرح مكوّنات React على الخادم» مجاني؟

نعم — نص درس «شرح مكوّنات React على الخادم» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة React Academy، انتقل إلى CoddyKit PRO. تتضمن دورة React Academy 4 دروس في المجموع.

ماذا ستتعلم في «شرح مكوّنات React على الخادم»؟

افهم ماهية RSCs وكيف تختلف عن مكوّنات العميل ومتى تستخدم كلًا منها. تتمرن على React Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ React Academy؟

لا تُشترط خبرة سابقة. React Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «شرح مكوّنات React على الخادم»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس React Academy هذا؟

نعم. كل درس في React Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. شرح مكوّنات React على الخادم
  2. ‏use() للموارد غير المتزامنة
  3. إجراءات React وuseActionState
  4. ‏useOptimistic للاستجابة الفورية
← العودة إلى React Academy