logo by @sawaratsuki1004
React
v19.2
تعلم
مرجع
المجتمع
المدونة

هل هذه الصفحة مفيدة؟

في هذه الصفحة

  • Overview
  • أطر عمل Full-stack
  • Next.js (App Router)
  • React Router (v7)
  • Expo (للتطبيقات الأصلية)
  • أطر عمل أخرى
  • ابدأ من الصفر

    البدأ

  • بداية سريعة
    • شرح تطبيقي: لعبة تيك تاك تو
    • التفكير على طريقة React
  • التثبيت
    • إنشاء تطبيق React
    • بناء تطبيق React من الصفر
    • إضافة React إلى مشروع موجود بالفعل
  • الإعداد
    • تجهيز المحرر
    • استخدام TypeScript
    • أدوات مطوري React
  • React Compiler
    • مقدمة
    • التثبيت
    • التبني التدريجي
    • تصحيح الأخطاء واستكشاف المشاكل
  • تعلم React

  • وصف واجهة المستخدم (UI)
    • مكونك الأول (Component)
    • استيراد وتصدير المكونات (Components)
    • كتابة ترميز البناء بـ JSX
    • JavaScript في JSX باستخدام الأقواس المنحنية
    • تمرير الخصائص (Props) إلى مكون
    • التصيير الشرطي (Conditional Rendering)
    • تصيير القوائم (Rendering Lists)
    • الحفاظ على نقاء المكونات (Pure Components)
    • واجهتك المستخدم كشجرة (UI Tree)
  • إضافة التفاعلية (Interactivity)
    • الاستجابة للأحداث (Events)
    • الحالة (State): ذاكرة المُكَوِّن
    • التصيير والالتزام (Render and Commit)
    • الحالة (State) كلقطة
    • إضافة سلسلة من تحديثات الحالة (State) إلى قائمة انتظار
    • تحديث الكائنات (Objects) في الحالة
    • تحديث المصفوفات (Arrays) في الحالة
  • إدارة State
    • التفاعل مع Input باستخدام State
    • اختيار بنية State
    • مشاركة State بين Components
    • الحفاظ على State وإعادة ضبطها
    • استخراج منطق State إلى Reducer
    • تمرير البيانات بشكل عميق باستخدام Context
    • التوسع باستخدام Reducer و Context
  • مخارج الطوارئ (Escape Hatches)
    • الإشارة إلى القيم باستخدام Refs
    • التلاعب بـ DOM باستخدام Refs
    • التزامن مع Effects
    • قد لا تحتاج إلى Effect
    • دورة حياة Reactive Effects
    • فصل Events عن Effects
    • إزالة اعتماديات Effect
    • إعادة استخدام المنطق باستخدام Custom Hooks
تعلم React
التثبيت

إنشاء تطبيق React

إذا كنت تريد بناء تطبيق أو موقع ويب جديد باستخدام React، فإننا نوصي بالبدء بإطار عمل.

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

أطر عمل Full-stack

تدعم أطر العمل الموصى بها هذه جميع الميزات التي تحتاجها لنشر تطبيقك وتوسيع نطاقه في الإنتاج. لقد دمجت أحدث ميزات React وتستفيد من بنية React.

ملاحظة

أطر عمل Full-stack لا تتطلب خادمًا.

جميع أطر العمل في هذه الصفحة تدعم client-side rendering (CSR)، وتطبيقات single-page (SPA)، و static-site generation (SSG). يمكن نشر هذه التطبيقات على CDN أو خدمة استضافة ثابتة بدون خادم. بالإضافة إلى ذلك، تتيح لك أطر العمل هذه إضافة server-side rendering على أساس كل route، عندما يكون ذلك منطقيًا لحالتك الاستخدامية.

يتيح لك هذا البدء بتطبيق client-only، وإذا تغيرت احتياجاتك لاحقًا، يمكنك الاشتراك في استخدام ميزات server على routes فردية دون إعادة كتابة تطبيقك. راجع مستندات إطار العمل الخاص بك لتكوين استراتيجية التصيير.

Next.js (App Router)

Next.js’s App Router هو إطار عمل React يستفيد بشكل كامل من بنية React لتمكين تطبيقات React full-stack.

Terminal
npx create-next-app@latest

يتم صيانة Next.js بواسطة Vercel. يمكنك نشر تطبيق Next.js على أي مزود استضافة يدعم Node.js أو حاويات Docker، أو على خادمك الخاص. يدعم Next.js أيضًا static export الذي لا يتطلب خادمًا.

React Router (v7)

React Router هي مكتبة التوجيه الأكثر شيوعًا لـ React ويمكن دمجها مع Vite لإنشاء إطار عمل React full-stack. إنها تركز على Web APIs القياسية ولديها العديد من القوالب الجاهزة للنشر لـ runtimes و platforms مختلفة من JavaScript.

لإنشاء مشروع إطار عمل React Router جديد، قم بتشغيل:

Terminal
npx create-react-router@latest

يتم صيانة React Router بواسطة Shopify.

Expo (للتطبيقات الأصلية)

Expo هو إطار عمل React يتيح لك إنشاء تطبيقات Android و iOS و web عالمية مع واجهات مستخدم أصلية حقًا. يوفر SDK لـ React Native مما يجعل الأجزاء الأصلية أسهل في الاستخدام. لإنشاء مشروع Expo جديد، قم بتشغيل:

Terminal
npx create-expo-app@latest

إذا كنت جديدًا على Expo، تحقق من دليل Expo التعليمي.

يتم صيانة Expo بواسطة Expo (الشركة). بناء التطبيقات باستخدام Expo مجاني، ويمكنك تقديمها إلى متاجر Google و Apple بدون قيود. يوفر Expo أيضًا خدمات سحابية مدفوعة اختيارية.

أطر عمل أخرى

هناك أطر عمل أخرى ناشئة تعمل نحو رؤيتنا لـ full stack React:

  • TanStack Start (Beta): TanStack Start هو إطار عمل React full-stack مدعوم بـ TanStack Router. يوفر full-document SSR و streaming و server functions و bundling والمزيد باستخدام أدوات مثل Nitro و Vite.
  • RedwoodJS: Redwood هو إطار عمل React full stack مع العديد من الحزم والتكوينات المثبتة مسبقًا مما يجعل من السهل بناء تطبيقات ويب full-stack.
غوص عميق

ما هي الميزات التي تشكل رؤية فريق React لبنية full-stack؟

يطبق bundler في Next.js’s App Router بشكل كامل مواصفات React Server Components الرسمية. يتيح لك هذا مزج مكونات build-time و server-only والمكونات التفاعلية في شجرة React واحدة.

على سبيل المثال، يمكنك كتابة مكون React server-only كدالة async تقرأ من قاعدة بيانات أو من ملف. ثم يمكنك تمرير البيانات منها إلى مكوناتك التفاعلية:

// This component runs *only* on the server (or during the build). async function Talks({ confId }) { // 1. You're on the server, so you can talk to your data layer. API endpoint not required. const talks = await db.Talks.findAll({ confId }); // 2. Add any amount of rendering logic. It won't make your JavaScript bundle larger. const videos = talks.map(talk => talk.video); // 3. Pass the data down to the components that will run in the browser. return <SearchableVideoList videos={videos} />; }

يدمج Next.js’s App Router أيضًا جلب البيانات مع Suspense. يتيح لك هذا تحديد حالة تحميل (مثل skeleton placeholder) لأجزاء مختلفة من واجهة المستخدم مباشرة في شجرة React:

<Suspense fallback={<TalksLoading />}> <Talks confId={conf.id} /> </Suspense>

Server Components و Suspense هي ميزات React وليست ميزات Next.js. ومع ذلك، فإن اعتمادها على مستوى إطار العمل يتطلب دعمًا وعملاً تنفيذيًا غير تافه. في الوقت الحالي، يعتبر Next.js App Router هو التطبيق الأكثر اكتمالاً. يعمل فريق React مع مطوري bundler لجعل هذه الميزات أسهل في التنفيذ في الجيل التالي من أطر العمل.

ابدأ من الصفر

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

البدء من الصفر يمنحك مرونة أكبر، ولكنه يتطلب منك اتخاذ قرارات حول الأدوات التي ستستخدمها للتوجيه وجلب البيانات وأنماط الاستخدام الشائعة الأخرى. إنه يشبه كثيرًا بناء إطار العمل الخاص بك، بدلاً من استخدام إطار عمل موجود بالفعل. أطر العمل التي نوصي بها لديها حلول مدمجة لهذه المشاكل.

إذا كنت تريد بناء الحلول الخاصة بك، راجع دليلنا لبناء تطبيق React من الصفر للحصول على تعليمات حول كيفية إعداد مشروع React جديد بدءًا من أداة build مثل Vite أو Parcel أو RSbuild.


إذا كنت مؤلف إطار عمل مهتمًا بإدراجه في هذه الصفحة، يرجى إعلامنا.

السابقالتثبيت
التاليبناء تطبيق React من الصفر

Copyright © Meta Platforms, Inc
no uwu plz
uwu?
Logo by@sawaratsuki1004
تعلم React
بداية سريعة
التثبيت
وصف واجهة المستخدم (UI)
إضافة التفاعلية
إدارة State
مخارج الطوارئ
مرجع API
React APIs
React DOM APIs
المجتمع
ميثاق السلوك
تعرف على الفريق
المساهمون في التوثيق
شكر وتقدير
المزيد
المدونة
React Native
الخصوصية
الشروط
// This component runs *only* on the server (or during the build).
async function Talks({ confId }) {
// 1. You're on the server, so you can talk to your data layer. API endpoint not required.
const talks = await db.Talks.findAll({ confId });

// 2. Add any amount of rendering logic. It won't make your JavaScript bundle larger.
const videos = talks.map(talk => talk.video);

// 3. Pass the data down to the components that will run in the browser.
return <SearchableVideoList videos={videos} />;
}
<Suspense fallback={<TalksLoading />}>
<Talks confId={conf.id} />
</Suspense>