Skip to content

Latest commit

 

History

History
178 lines (122 loc) · 12.4 KB

File metadata and controls

178 lines (122 loc) · 12.4 KB
title إضافة React إلى مشروع موجود بالفعل

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

تحتاج إلى تثبيت Node.js إلى بيئة التطوير المحلية الخاصة بك. على الرغم من أنه يمكنك تجربة React عبر الإنترنت أو باستخدام صفحة HTML بسيطة، إلا أن معظم أدوات JavaScript التي تريد استخدامها للتطوير تتطلب Node.js.

استخدام React لمسار فرعي كامل من موقع الويب الحالي الخاص بك {/using-react-for-an-entire-subroute-of-your-existing-website/}

لنفترض أن لديك تطبيق ويب موجود على example.com مبني بتقنية خادم أخرى (مثل Rails)، وتريد تنفيذ جميع المسارات التي تبدأ بـ example.com/some-app/ بالكامل مع React.

هنا ما نوصي به لإعداده:

<<<<<<< HEAD

  1. بناء الجزء الخاص بـ React في تطبيقك باستخدام إحدى الإطارات المبنية على React.
  2. حدد /some-app كـ مسار أساسي في إعدادات إطار العمل الخاص بك (هنا كيف مع: Next.js, Gatsby).
  3. قم بتكوين خادمك أو بروكسي بحيث يتم التعامل مع جميع الطلبات تحت /some-app/ من قبل تطبيق React الخاص بك.

يضمن هذا أن الجزء الخاص بـ React من تطبيقك يمكن أن يستفيد من أفضل الممارسات المدمجة في تلك الإطارات.

  1. Build the React part of your app using one of the React-based frameworks.
  2. Specify /some-app as the base path in your framework's configuration (here's how: Next.js, Gatsby).
  3. Configure your server or a proxy so that all requests under /some-app/ are handled by your React app.

This ensures the React part of your app can benefit from the best practices baked into those frameworks.

d271a7ac11d2bf0d6e95ebdfacaf1038421f9be0

العديد من الإطارات القائمة على React هي إطارات full-stack وتتيح لتطبيق React الخاص بك الاستفادة من الخادم. ومع ذلك، يمكنك استخدام نفس النهج حتى إذا لم تتمكن أو لا تريد تشغيل JavaScript على الخادم. في هذه الحالة ، قم بتصدير HTML/CSS/JS (next export لـ Next.js ، هذا هو الافتراضي لـ Gatsby) في /some-app/ بدلاً من ذلك.

استخدام React لجزء من صفحتك الحالية {/using-react-for-a-part-of-your-existing-page/}

لنفترض أن لديك صفحة موجودة على example.com مبنية بتقنية أخرى (إما خادم مثل Rails أو عميل مثل Backbone)، وتريد تقديم مكونات React التفاعلية في أي مكان على تلك الصفحة. هذه هي الطريقة الشائعة لدمج React - في الواقع، هذا هو شكل معظم استخدام React في Meta لسنوات عديدة!

يمكنك القيام بذلك في خطوتين:

  1. إعداد بيئة JavaScript والتي تمكنك من استخدام بنية JSX، وتقسيم الكود إلى وحدات باستخدام العبارات الأساسية import / export، واستخدام الحزم (على سبيل المثال ، React) من مدير الحزم npm.
  2. قم بتصيير مكونات React حيث تريد رؤيتها على الصفحة.

نفس النهج يعتمد على إعداد صفحتك الحالية، لذلك دعنا نتناول بعض التفاصيل.

الخطوة 1: إعداد بيئة JavaScript معمارية (modular) {/step-1-set-up-a-modular-javascript-environment/}

بيئة JavaScript المعمارية تسمح لك بكتابة مكونات React في ملفات منفصلة، بدلاً من كتابة كل الكود في ملف واحد. كما تتيح لك استخدام جميع الحزم الرائعة التي نشرها مطورون آخرون على مدير الحزم npm - بما في ذلك React نفسه! كيفية القيام بذلك تعتمد على إعدادك الحالي:

  • إذا كان تطبيقك مقسم بالفعل إلى ملفات تستخدم عبارات import، فحاول استخدام الإعداد الذي لديك بالفعل. تحقق مما إذا كان كتابة <div /> في كود JS الخاص بك يسبب خطأ في البناء. إذا تسبب في خطأ في البناء، فقد تحتاج إلى تحويل كود JavaScript الخاص بك باستخدام Babel، وتمكين Babel React preset لاستخدام JSX.

<<<<<<< HEAD

  • إذا لم يكن لتطبيقك إعداد حالي لتجميع وحدات JavaScript، فقم بإعداده مع Vite. تحتفظ مجتمع Vite بـ [العديد من التكاملات مع إطارات العمل الخلفية]((https://github.com/vitejs/awesome-vite#integrations-with-backends) ، بما في ذلك Rails و Django و Laravel. إذا لم يتم سرد إطار عمل الخلفية الخاص بك، اتبع هذه الإرشادات لدمج بناء Vite يدويًا مع إطار عملك. =======
  • If your app doesn't have an existing setup for compiling JavaScript modules, set it up with Vite. The Vite community maintains many integrations with backend frameworks, including Rails, Django, and Laravel. If your backend framework is not listed, follow this guide to manually integrate Vite builds with your backend.

d271a7ac11d2bf0d6e95ebdfacaf1038421f9be0

للتحقق مما إذا كان إعدادك يعمل، قم بتشغيل هذا الأمر في مجلد مشروعك:

npm install react react-dom

ثم أضف هذه الأسطر من الكود في أعلى ملف JavaScript الرئيسي الخاص بك (قد يسمى index.js أو main.js):

<!DOCTYPE html>
<html>
  <head><title>تطبيقي</title></head>
  <body>
<<<<<<< HEAD
    <!-- محتوى صفحتك الحالي (في هذا المثال سيتم تبديله) -->
=======
    <!-- Your existing page content (in this example, it gets replaced) -->
>>>>>>> d271a7ac11d2bf0d6e95ebdfacaf1038421f9be0
    <div id="root"></div>
  </body>
</html>
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>);

إذا تم استبدال محتوى صفحتك بالكامل بـ "مرحبًا بكم!"، فقد نجحت العملية! استمر في القراءة.

<<<<<<< HEAD دمج بيئة JavaScript معمارية في مشروع موجود قد يبدو مرعبًا أول الأمر، ولكنه يستحق ذلك! إذا تعثرت ، جرب السؤال في المجتمع أو الدردشة في Vite.

Integrating a modular JavaScript environment into an existing project for the first time can feel intimidating, but it's worth it! If you get stuck, try our community resources or the Vite Chat.

d271a7ac11d2bf0d6e95ebdfacaf1038421f9be0

الخطوة 2: عرض مكونات React في أي مكان على الصفحة {/step-2-render-react-components-anywhere-on-the-page/}

في الخطوة السابقة، وضعت هذا الكود في أعلى ملفك الرئيسي:

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 الخاص بك داخله:

<!DOCTYPE html>
<html>
  <head><title>تطبيقي</title></head>
  <body>
    <p>فقرة من أجزاء HTML</p>
    <nav id="navigation"></nav>
    <p>وهذه الفقرة أيضًا من أجزاء HTML</p>
  </body>
</html>
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 في تطبيق محمول أصلي موجود {/using-react-native-in-an-existing-native-mobile-app/}

يمكن أيضًا دمج React Native في التطبيقات الأصلية الموجودة تدريجيًا. إذا كان لديك تطبيق أصلي موجود لنظام أندرويد (Java أو Kotlin) أو iOS (Objective-C أو Swift) ، اتبع هذا الدليل لإضافة شاشة React Native إليه.