بدء مشروع React جديد
إذا كنت ترغب في بناء تطبيق جديد أو موقع ويب جديد بالكامل باستخدام React، نوصي باختيار أحد الأطر المدعومة بـ React والتي تحظى بشعبية في المجتمع.
يمكنك استخدام React بدون إطار عمل، ولكننا وجدنا أن معظم التطبيقات والمواقع في النهاية تبني حلولاً لمشاكل شائعة مثل تقسيم الكود، التوجيه، جلب البيانات، وتوليد HTML. هذه المشاكل شائعة لجميع مكتبات واجهات المستخدم، وليست مقتصرة على React فقط.
ببدء العمل بإطار عمل، يمكنك البدء بسرعة مع React، وتجنب بناء إطار عمل خاص بك لاحقاً.
Deep Dive
يمكنك بالتأكيد استخدام React بدون إطار عمل — هكذا يمكنك استخدام React لجزء من صفحتك. ومع ذلك، إذا كنت تبني تطبيقًا جديدًا أو موقعًا بالكامل باستخدام React، فنوصي باستخدام إطار عمل.
إليك السبب:
حتى إذا لم تكن بحاجة إلى routing أو جلب البيانات في البداية، فستحتاج على الأرجح إلى إضافة بعض المكتبات لهذه الأمور. مع زيادة حجم حزمة JavaScript مع كل ميزة جديدة، قد تحتاج إلى معرفة كيفية تقسيم الكود لكل مسار على حدة. مع تزايد تعقيد احتياجات جلب البيانات، قد تواجه حالات من تدفقات الشبكة بين الخادم والعميل تجعل تطبيقك يبدو بطيئًا جدًا. ومع تزايد عدد المستخدمين الذين يعانون من ظروف شبكة ضعيفة وأجهزة منخفضة الأداء، قد تحتاج إلى توليد HTML من مكوناتك لعرض المحتوى مبكرًا — إما على الخادم أو أثناء وقت البناء. يمكن أن يكون تغيير إعداداتك لتشغيل بعض من كودك على الخادم أو أثناء البناء معقدًا جدًا.
هذه المشاكل ليست خاصة بـ React. لهذا السبب، يحتوي Svelte على SvelteKit، وVue على Nuxt، وهكذا. لحل هذه المشاكل بنفسك، ستحتاج إلى دمج أداة البناء الخاصة بك مع router الخاص بك ومع مكتبة جلب البيانات. ليس من الصعب الحصول على إعداد أولي يعمل، ولكن هناك الكثير من التفاصيل المتضمنة في جعل التطبيق يتحمل تحميلًا سريعًا حتى مع نموه بمرور الوقت. ستريد إرسال الحد الأدنى من كود التطبيق ولكن في جولة واحدة بين العميل والخادم، بالتوازي مع أي بيانات مطلوبة للصفحة. من المحتمل أن ترغب في أن تكون الصفحة تفاعلية قبل تشغيل كود JavaScript الخاص بك، لدعم التحسين التدريجي. قد ترغب في توليد مجلد من ملفات HTML ثابتة بالكامل لصفحات التسويق الخاصة بك التي يمكن استضافتها في أي مكان وتعمل حتى مع تعطيل JavaScript. بناء هذه القدرات بنفسك يتطلب عملًا حقيقيًا.
تقوم أطر React على هذه الصفحة بحل مشاكل مثل هذه بشكل افتراضي، دون الحاجة إلى عمل إضافي من جانبك. تتيح لك البدء بطريقة خفيفة ثم توسيع تطبيقك وفقًا لاحتياجاتك. لكل إطار عمل React مجتمع، لذا فإن العثور على إجابات للأسئلة وترقية الأدوات أسهل. توفر الأطر أيضًا بنية لكودك، مما يساعدك وأشخاص آخرين في الحفاظ على السياق والمهارات بين المشاريع المختلفة. على العكس من ذلك، مع إعداد مخصص، من الأسهل أن تعلق على إصدارات التبعية غير المدعومة، وستنتهي أساسًا بإنشاء إطار عمل خاص بك—رغم أنه بدون مجتمع أو مسار ترقية (وإذا كان مشابهًا لتلك التي قمنا بإنشائها في الماضي، سيكون أكثر تصميمًا عشوائيًا).
إذا كان لتطبيقك قيود غير عادية لا تلبيها هذه الأطر بشكل جيد، أو إذا كنت تفضل حل هذه المشاكل بنفسك، يمكنك إعداد مخصص باستخدام React. احصل على react و react-dom من npm، واضبط عملية البناء المخصصة الخاصة بك باستخدام أداة بناء مثل Vite أو Parcel, وأضف أدوات أخرى حسب الحاجة للتوجيه أو التوليد الثابت أو التقديم من جانب الخادم، وأكثر.
أطر React جاهزة للإنتاج
تدعم هذه الأطر جميع الميزات التي تحتاجها لنشر وتوسيع تطبيقك في بيئة الإنتاج وتعمل على دعم full-stack architecture vision. لدينا. جميع الأطر التي نوصي بها مفتوحة المصدر ولها مجتمعات نشطة للدعم، ويمكن نشرها على خادمك الخاص أو مزود استضافة. إذا كنت مؤلف إطار عمل مهتمًا بأن تكون مدرجًا في هذه القائمة،يرجى إبلاغنا..
Next.js
Router في Next.js هو إطار عمل React كامل النطاق. إنه متعدد الاستخدامات ويسمح لك بإنشاء تطبيقات React بأي حجم — من مدونة ثابتة إلى تطبيق ديناميكي معقد. لإنشاء مشروع Next.js جديد، نفّذ الأمر التالي في نافذة الأوامر الخاصة بك:
إذا كنت جديدًا على Next.js، تحقق من دورة تعلم Next.js.
يتم صيانة Next.js بواسطة Vercel. يمكنك استضافة تطبيق Next.js على أي استضافة Node.js أو استضافة بدون خادم، أو على خادمك الخاص. يدعم Next.js أيضً تصدير ثابت لا يتطلب خادمًا.
Remix
Remix هو إطار عمل React كامل النطاق مع routing المتداخل. يتيح لك تقسيم تطبيقك إلى أجزاء متداخلة يمكنها تحميل البيانات بشكل متوازٍ وتحديثها استجابةً لأفعال المستخدم. لإنشاء مشروع Remix جديد، نفّذ:
إذا كنت جديدًا على Remix، تحقق من دورة المدونةl (قصير) و دورة التطبيق (طويل).
يتم صيانة Remix بواسطة Shopify. عند إنشاء مشروع Remix، تحتاج إلى اختيار هدف الاستضافة يمكنك استضافة تطبيق Remix على أي استضافة Node.js أو استضافة بدون خادم باستخدام أو كتابة adapter.
Gatsby
Gatsby هو إطار عمل React لمواقع الويب السريعة المدعومة بنظام إدارة المحتوى (CMS). تسهّل مجموعة الإضافات الغنية وطبقة بيانات GraphQL دمج المحتوى، وواجهات البرمجة، والخدمات في موقع واحد. لإنشاء مشروع Gatsby جديد، نفّذ:
إذا كنت جديدًا على Gatsby، تحقق من دورة Gatsby التعليمية.
يتم صيانة Gatsby بواسطةNetlify. يمكنك استضافة موقع Gatsby ثابت بالكامل على أي استضافة ثابتة. إذا اخترت استخدام الميزات الخاصة بالخادم فقط، تأكد من أن مزود الاستضافة يدعمها لـ Gatsby.
Expo (لتطبيقات الأجهزة المحمولة)
Expo هو إطار عمل React يتيح لك إنشاء تطبيقات عالمية لأنظمة Android وiOS والويب بواجهات مستخدم أصلية تمامًا. يوفر SDK لـReact Native مما يجعل الأجزاء الأصلية أسهل في الاستخدام. لإنشاء مشروع Expo جديد، نفّذ:
إذا كنت جديدًا على Expo، تحقق من دورة Expo التعليمية.
تتم صيانة Expo بواسطة Expo (الشركة). بناء التطبيقات باستخدام Expo مجاني، ويمكنك تقديمها إلى متاجر تطبيقات Google وApple دون قيود. بالإضافة إلى ذلك، توفر Expo خدمات سحابية مدفوعة قابلة للتفعيل.
أطر React المتقدمة للغاية
بينما استكشفنا كيفية تحسين React، أدركنا أن دمج React بشكل أكثر قربًا مع الأطر (خصوصًا، مع التوجيه ، والتجميع، وتقنيات الخادم) هو أكبر فرصة لدينا لمساعدة مستخدمي React على بناء تطبيقات أفضل. وافق فريق Next.js على التعاون معنا في البحث والتطوير والتكامل واختبار ميزات React المتقدمة المستقلة عن الأطر مثل مكونات خادم React.
تقترب هذه الميزات من أن تكون جاهزة للإنتاج كل يوم، وقد كنا في محادثات مع مطوري أدوات التجميع والأطر الأخرى حول دمجها. أملنا هو أنه بعد عام أو عامين، ستدعم جميع الأطر المدرجة في هذه الصفحة هذه الميزات بالكامل. (إذا كنت مؤلف إطار عمل مهتمًا بالشراكة معنا لتجربة هذه الميزات، يرجى إبلاغنا!)
Next.js (App Router)
Next.js’s App Routerهو إعادة تصميم لواجهات Next.js تهدف إلى تحقيق رؤية فريق React ل full-stack architecture يتيح لك جلب البيانات في مكونات غير متزامنة تعمل على الخادم أو حتى أثناء البناء.
يتم صيانة Next.js بواسطة Vercel. يمكنك استضافة تطبيق Next.js على أي استضافة Node.js أو استضافة بدون خادم، أو على خادمك الخاص. يدعم Next.js أيضًا التصدير الثابت الذي لا يتطلب خادمًا.
Deep Dive
يطبق مجمع App Router في Next.js بالكامل مواصفات مكونات خادم React الرسمية. يتيح لك ذلك مزج المكونات الخاصة بالوقت البني، والمكونات الخاصة بالخادم فقط، والمكونات التفاعلية في شجرة React واحدة.
على سبيل المثال، يمكنك كتابة مكوّن React خاص بالخادم فقط كدالة 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} />;
}
مجمع App Router في Next.js يدمج أيضًا جلب البيانات مع Suspense.. يتيح لك ذلك تحديد حالة تحميل (مثل عنصر تحجيم مبدئي) لأجزاء مختلفة من واجهة المستخدم الخاصة بك مباشرة في شجرة React الخاصة بك:
<Suspense fallback={<TalksLoading />}>
<Talks confId={conf.id} />
</Suspense>
مكونات الخادم وSuspense هما ميزتان من React بدلاً من كونهما ميزتين في Next.js. ومع ذلك، فإن تبنيهما على مستوى الإطار يتطلب الموافقة وعملية تنفيذ غير بسيطة. في الوقت الحالي، يعتبر مجمع App Router في Next.js هو التنفيذ الأكثر اكتمالاً. يعمل فريق React مع مطوري أدوات التجميع لجعل هذه الميزات أسهل في التنفيذ في الجيل القادم من الأطار.