إضافة React إلى مشروع موجود بالفعل
إذا كنت تريد إضافة بعض التفاعلية إلى مشروعك الموجود بالفعل، فليس عليك إعادة كتابته في React. أضف React إلى مجموعة الأدوات الموجودة لديك، وقم بتقديم مكونات React التفاعلية في أي مكان.
استخدام React لمسار فرعي كامل من موقع الويب الحالي الخاص بك
لنفترض أن لديك تطبيق ويب موجود على example.com
مبني بتقنية خادم أخرى (مثل Rails)، وتريد تنفيذ جميع المسارات التي تبدأ بـ example.com/some-app/
بالكامل مع React.
هنا ما نوصي به لإعداده:
- بناء الجزء الخاص بـ React في تطبيقك باستخدام إحدى الإطارات المبنية على React.
- حدد
/some-app
كـ مسار أساسي في إعدادات إطار العمل الخاص بك (هنا كيف مع: Next.js, Gatsby). - قم بتكوين خادمك أو بروكسي بحيث يتم التعامل مع جميع الطلبات تحت
/some-app/
من قبل تطبيق React الخاص بك.
يضمن هذا أن الجزء الخاص بـ React من تطبيقك يمكن أن يستفيد من أفضل الممارسات المدمجة في تلك الإطارات.
العديد من الإطارات القائمة على React هي إطارات full-stack وتتيح لتطبيق React الخاص بك الاستفادة من الخادم. ومع ذلك، يمكنك استخدام نفس النهج حتى إذا لم تتمكن أو لا تريد تشغيل JavaScript على الخادم. في هذه الحالة
، قم بتصدير HTML/CSS/JS (next export
لـ Next.js ، هذا هو الافتراضي لـ Gatsby) في /some-app/
بدلاً من ذلك.
استخدام React لجزء من صفحتك الحالية
لنفترض أن لديك صفحة موجودة على example.com
مبنية بتقنية أخرى (إما خادم مثل Rails أو عميل مثل Backbone)، وتريد تقديم مكونات React التفاعلية في أي مكان على تلك الصفحة. هذه هي الطريقة الشائعة لدمج React - في الواقع، هذا هو شكل معظم استخدام React في Meta لسنوات عديدة!
يمكنك القيام بذلك في خطوتين:
- إعداد بيئة JavaScript والتي تمكنك من استخدام بنية JSX، وتقسيم الكود إلى وحدات باستخدام العبارات الأساسية
import
/export
، واستخدام الحزم (على سبيل المثال ، React) من مدير الحزم npm. - قم بتصيير مكونات React حيث تريد رؤيتها على الصفحة.
نفس النهج يعتمد على إعداد صفحتك الحالية، لذلك دعنا نتناول بعض التفاصيل.
الخطوة 1: إعداد بيئة JavaScript معمارية (modular)
بيئة JavaScript المعمارية تسمح لك بكتابة مكونات React في ملفات منفصلة، بدلاً من كتابة كل الكود في ملف واحد. كما تتيح لك استخدام جميع الحزم الرائعة التي نشرها مطورون آخرون على مدير الحزم npm - بما في ذلك React نفسه! كيفية القيام بذلك تعتمد على إعدادك الحالي:
-
إذا كان تطبيقك مقسم بالفعل إلى ملفات تستخدم عبارات
import
، فحاول استخدام الإعداد الذي لديك بالفعل. تحقق مما إذا كان كتابة<div />
في كود JS الخاص بك يسبب خطأ في البناء. إذا تسبب في خطأ في البناء، فقد تحتاج إلى تحويل كود JavaScript الخاص بك باستخدام Babel، وتمكين Babel React preset لاستخدام JSX. -
إذا لم يكن لتطبيقك إعداد حالي لتجميع وحدات JavaScript، فقم بإعداده مع Vite. تحتفظ مجتمع Vite بـ العديد من التكاملات مع إطارات العمل الخلفية ، بما في ذلك Rails و Django و Laravel. إذا لم يتم سرد إطار عمل الخلفية الخاص بك، اتبع هذه الإرشادات لدمج بناء Vite يدويًا مع إطار عملك.
للتحقق مما إذا كان إعدادك يعمل، قم بتشغيل هذا الأمر في مجلد مشروعك:
ثم أضف هذه الأسطر من الكود في أعلى ملف JavaScript الرئيسي الخاص بك (قد يسمى index.js
أو main.js
):
import { createRoot } from 'react-dom/client'; // إزالة محتوى HTML الحالي document.body.innerHTML = '<div id="app"></div>'; // عرض مكون React بدلاً من ذلك const root = createRoot(document.getElementById('app')); root.render(<h1>مرحبًا بكم!</h1>);
إذا تم استبدال محتوى صفحتك بالكامل بـ “مرحبًا بكم!”، فقد نجحت العملية! استمر في القراءة.
الخطوة 2: عرض مكونات React في أي مكان على الصفحة
في الخطوة السابقة، وضعت هذا الكود في أعلى ملفك الرئيسي:
import { createRoot } from 'react-dom/client';
// إزالة محتوى HTML الحالي
document.body.innerHTML = '<div id="app"></div>';
// عرض مكون React بدلاً من ذلك
const root = createRoot(document.getElementById('app'));
root.render(<h1>مرحبًا بكم!</h1>);
بالتأكيد لا تريد حذف محتوى HTML الحالي!
احذف هذا الكود.
بدلًا عن ذلك، ربما تريد عرض مكونات React الخاصة بك في أماكن محددة في HTML الخاص بك. افتح صفحة HTML الخاصة بك (أو قوالب الخادم التي تنشئها) وأضف معرفًا فريدًا id
إلى أي علامة، على سبيل المثال:
<!-- ... في مكان ما في ملف html ... -->
<nav id="navigation"></nav>
<!-- ... المزيد من html ... -->
هذا يتيح لك العثور على عنصر HTML باستخدام document.getElementById
وتمريره إلى createRoot
حتى تتمكن من عرض مكون React الخاص بك داخله:
import { createRoot } from 'react-dom/client'; function NavigationBar() { // مَهمّة: هذا المكون يعرض مكون شريط التنقل return <h1>مرحبًا من React</h1>; } const domNode = document.getElementById('navigation'); const root = createRoot(domNode); root.render(<NavigationBar />);
لاحظ كيف احتفظت بمحتوى HTML الحالي من index.html
، ولكن مكون React الخاص بك NavigationBar
الآن يظهر داخل <nav id="navigation">
من HTML الخاص بك. اقرأ وثائق استخدام createRoot
لمعرفة المزيد حول تصيير مكونات React داخل صفحة HTML موجودة.
عندما تضيف React في مشروع موجود، من الشائع أن تبدأ بمكونات تفاعلية صغيرة (مثل الأزرار)، ثم تستمر تدريجيًا في “النمو” حتى تصبح صفحتك بأكملها مبنية بـ React. إذا وصلت إلى هذه النقطة، فإننا نوصي بالانتقال إلى إطار عمل لـ React مباشرة بعد ذلك للاستفادة القصوى من React.
استخدام React Native في تطبيق محمول أصلي موجود
يمكن أيضًا دمج React Native في التطبيقات الأصلية الموجودة تدريجيًا. إذا كان لديك تطبيق أصلي موجود لنظام أندرويد (Java أو Kotlin) أو iOS (Objective-C أو Swift) ، اتبع هذا الدليل لإضافة شاشة React Native إليه.