الفرق بين المراجعتين ل"ReactNative/getting started"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط
 
(22 مراجعة متوسطة بواسطة 4 مستخدمين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:مدخل إلى React Native}}</noinclude>
+
{{DISPLAYTITLE:مدخل إلى React Native}}
ستساعدك هذه الصفحة على تثبيت React Native وبناء تطبيقك الأول. إن ثبّتت React Native مسبقاً فيمكنك تخطي هذه الصفحة والتوجّه إلى [[ReactNative/tutorial|الدليل التطبيقي]].
+
مرحبًا بك في بداية رحلتنا إلى إطار عمل React Native. إن أردت الاطّلاع على تعليمات إعداد البيئة، فقد انتقلت إلى [[ReactNative/environment setup|قسمها الخاص]]. ستجد في هذه الصفحة مدخلًا إلى التوثيق والمكونات الأصيلة ومكتبة React وغير ذلك.
  
يمكنك أن تبدأ مباشرة باتباع الإرشادات في قسم "[[ReactNative/getting started#.D8.A7.D8.A8.D8.AF.D8.A3 .D8.A8.D8.B3.D8.B1.D8.B9.D8.A9|ابدأ بسرعة]]"، أو يُمكنك اتباع إرشادات تهيئة بيئة عمل على نظام تشغيلك لبناء المشاريع باستخدام شيفرة أصيلة (native code) حسب المنصة التي تريد تطوير تطبيق لها على قسم "بناء مشاريع بشيفرة أصيلة"، اتبع الإرشادات المذكورة في أحد هذه الأقسام حسب نظام تشغيلك والمنصة التي ترغب بالتطوير لها:
+
كُتِب هذا التوثيق لجميع الأشخاص الذين يريدون تعلّم React Native بغض النظر عن مستوى خبرتهم أو خلفيتهم ابتداءً من من مطوري تطبيقات iOS الخبراء إلى متعلّمي [[React]] المبتدئين، والأشخاص الذين يتعلّمون البرمجة لأول مرة في حياتهم المهنية.
* [[ReactNative/getting started#.D8.A7.D9.84.D8.AA.D8.B7.D9.88.D9.8A.D8.B1 .D8.B9.D9.84.D9.89 .D9.86.D8.B8.D8.A7.D9.85 macOS .D9.84.D9.85.D9.86.D8.B5.D9.91.D8.A9 iOS|التطوير على نظام macOS لمنصّة iOS]]
 
* [[ReactNative/getting started#.D8.A7.D9.84.D8.AA.D8.B7.D9.88.D9.8A.D8.B1 .D8.B9.D9.84.D9.89 .D9.86.D8.B8.D8.A7.D9.85 macOS .D9.84.D9.85.D9.86.D8.B5.D9.91.D8.A9 Android|التطوير على نظام macOS لمنصّة Android]]
 
* [[ReactNative/getting started#.D8.A7.D9.84.D8.AA.D8.B7.D9.88.D9.8A.D8.B1 .D8.B9.D9.84.D9.89 .D9.86.D8.B8.D8.A7.D9.85 Windowns .D9.84.D9.85.D9.86.D8.B5.D9.91.D8.A9 Android|التطوير على نظام Windowns لمنصّة Android]]
 
* [[ReactNative/getting started#.D8.A7.D9.84.D8.AA.D8.B7.D9.88.D9.8A.D8.B1 .D8.B9.D9.84.D9.89 .D9.86.D8.B8.D8.A7.D9.85 Linux .D9.84.D9.85.D9.86.D8.B5.D9.91.D8.A9 Android|التطوير على نظام Linux لمنصّة Android]]
 
  
==ابدأ بسرعة==
+
== كيفية استخدام هذا التوثيق ==
أسهل طريقة لبناء تطبيق React Native هي عن طريق بيئة [https://expo.io/ Expo]. وهي بيئة تمكّن من بناء مشروعٍ دون الحاجة لتثبيت أو إعداد أدوات للتعامل مع شيفرة أصيلة، إذ لا حاجة لتثبيت Android Studio أو Xcode. (لكنها تأتي مع بعض [[ReactNative/getting started#.D9.85.D8.AD.D8.A7.D8.B0.D9.8A.D8.B1 .D9.8A.D8.AC.D8.A8 .D8.A7.D9.84.D8.A7.D9.86.D8.AA.D8.A8.D8.A7.D9.87 .D8.A5.D9.84.D9.8A.D9.87.D8.A7 .D8.B9.D9.86.D8.AF .D8.A7.D8.B3.D8.AA.D8.AE.D8.AF.D8.A7.D9.85 Expo|المحاذير]]).
+
يمكنك البدء من هذه الصفحة وقراءة هذا التوثيق تسلسليًا كأنك تقرأ كتابًا، أو يمكنك قراءة الأقسام المحدَّدة التي تحتاجها فقط. إن كنت على دراية بمكتبة React، فيمكنك تخطي قسم [[ReactNative/intro react|أساسيات مكتبة React]]، أو قراءته لتجديد معلوماتك.
  
بافتراض أن حزمة [[Node.js|Node]] مثبتة لديك، بإمكانك استخدام أداة npm لتثبيت واجهة سطر الأوامر لبيئة Expo بالأمر التالي:<syntaxhighlight>
+
== المتطلبات الأساسية ==
npm install -g expo-cli
+
ستحتاج إلى فهم أساسيات لغة [[JavaScript]] للعمل مع React Native. إن كنت جديدًا على لغة جافا سكريبت أو بحاجة إلى تجديد معلوماتك، فيمكنك الغوص في [[JavaScript|توثيق لغة JavaScript]] على موسوعة حسوب.<blockquote>افترضنا عدم وجود معرفة مسبقة بتطوير تطبيقات React أو Android أو iOS لدى قارئ هذا التوثيق، ولكنها مواضيع قيّمة ليدرسها مطوّر React Native الطموح، لذلك ربطنا القارئ بالموارد والمقالات اللازمة ليتعمّق في هذه المواضيع أكثر.</blockquote>
</syntaxhighlight>بعد ذلك نفّذ الأوامر التالية لتنشئ مشروع React Native باسم <code>AwesomeProject</code>:<syntaxhighlight>
 
expo init AwesomeProject
 
  
cd AwesomeProject
+
== أمثلة تفاعلية ==
npm start
+
يتيح لك هذا المدخل البدء على الفور ضمن متصفحك بأمثلة تفاعلية كهذا المثال ([https://snack.expo.dev/@hsoubwiki/hello-world تجربة حية]):<syntaxhighlight lang="javascript">
</syntaxhighlight>سيقوم هذا الأمر بتشغيل خادم تطويرٍ (development server) على حاسوبك.
+
import React from 'react';
 +
import { Text, View } from 'react-native';
  
==== تشغيل التطبيق ====
+
const YourApp = () => {
ثبّت تطبيق Expo الخاص بالعميل على هاتفك ذو [https://play.google.com/store/apps/details?id=host.exp.exponent&referrer=www نظام Android] أو [https://itunes.apple.com/app/apple-store/id982107779 نظام iOS] وصِلهُ بنفس الشبكة اللاسلكية التي يتصل بها حاسوبك. إن كنت على نظام Android فاستخدم هاتفك لمسح رمز الاستجابة السريعة (QR code) لفتح مشروعك، أما على iOS فاتبع الإرشادات التي تظهر على الشاشة لتحصل على رابط تفتح من خلاله مشروعك.
+
  return (
 +
    <View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
 +
      <Text>
 +
        Try editing me! 🎉
 +
      </Text>
 +
    </View>
 +
  );
 +
}
  
==== تعديل التطبيق ====
+
export default YourApp;
بعد تشغيل التطبيق بنجاح، لنقم بتعديله. افتح ملف <code>App.js</code> في محرر النصوص المفضل لديك وقم بتعديل بعض الأسطر. يجب على التطبيق أن يُحدَّثَ تلقائيًّا كلما حفظت تعديلاتك.
+
</syntaxhighlight>يمكنك استخدام الأداة Snack Player التي هي أداة مفيدة أنشأها Expo لتضمين وتشغيل مشاريع React Native ومشاركة كيفية تصييرها render على منصات مختلفة مثل Android و iOS. وضعنا لك قبل كل مثال رابطًا لتجربة حية له على Snack Player يمكِّنك من تجربة المثال على مختلف الأجهزة والبيئات إن أردت ذلك وحتى نسخ الشيفرة إلى حسابك على Expo أو يمكنك الاطلاع على المثال مباشرةً ونسخ الشيفرة من الموسوعة.<blockquote>إن أردت إعداد بيئة تطوير محلية، فيمكنك [[ReactNative/environment setup|اتباع دليلنا لإعداد بيئتك على جهازك المحلي]] ولصق أمثلة الشيفرة في ملف <code>App.js</code> الخاص بك (إذا كنت مطور ويب، فقد يكون لديك بالفعل بيئة محلية معدَّة لاختبار متصفح الهاتف المحمول).</blockquote>
  
==== هذا كل ما في الأمر! ====
+
== مكونات الدالة Function Components ومكونات الصنف Class Components ==
تهانينا! لقد شغلت وعدلت أول تطبيق React Native خاص بك بنجاح.
+
يمكنك إنشاء مكوّنات باستخدام دوال أو أصناف في React. كانت مكونات الصنف سابقًا هي المكونات الوحيدة التي يمكن أن يكون لها حالة، ولكن أصبح بإمكانك إضافة حالة وغير ذلك إلى مكونات الدالة منذ بداية ظهور واجهات API الخاصة بخطّافات React.
  
=== الخطوات التالية ===
+
ظهرت الخطافات Hooks في الإصدار [https://reactnative.dev/blog/2019/03/12/releasing-react-native-059 0.59 من React Native]، وبما أن الخطافات هي الطريقة المستقبلية لكتابة مكونات React الخاصة بك، فقد استخدمنا أمثلة لمكونات الدالة بالإضافة إلى مكونات الصنف كما يلي:
لدى بيئة Expo [https://docs.expo.io/ توثيق] خاص بها يمكنك الرجوع إليه في حال راودك تساؤل حولها. كما يمكنك طلب المساعدة على [https://forums.expo.io/ منتديات Expo].
 
  
إن كنت تواجه مشكلةً مع Expo فابحث أولًا لترى إن كانت هناك علّة (issue) عن المشكلة التي تواجهها قبل أن تفتح علّة جديدة، يمكنك البحث في الصفحتين التاليتين:
+
=== مكون الدالة ===
* [https://github.com/expo/expo-cli/issues علل واجهة سطر أوامر Expo] (للمشاكل المتعلقة بواجهة سطر الأوامر Expo CLI).
+
[https://snack.expo.dev/@hsoubwiki/hello-world-class-component تجربة حية للمثال]:<syntaxhighlight lang="javascript">
 +
import React from 'react';
 +
import { Text, View } from 'react-native';
  
* [https://github.com/expo/expo/issues علل Expo] (للمشاكل المتعلقة بتطبيق العميل أو حزمة التطوير -SDK- الخاصة ببيئة Expo).
+
const HelloWorldApp = () => {
أمّا للاستزادة حول React Native، فابدأ بقراءة [[ReactNative/tutorial|الدليل التطبيقي]].
+
  return (
 +
    <View style={{
 +
        flex: 1,
 +
        justifyContent: 'center',
 +
        alignItems: 'center'
 +
      }}>
 +
      <Text>Hello, world!</Text>
 +
    </View>
 +
  );
 +
}
  
==== تشغيل التطبيق على مُحاكٍ (simulator) أو جهاز افتراضي (virtual device) ====
+
export default HelloWorldApp;
تسهل واجهة سطر الأوامر الخاصة ببيئة Expo عملية تشغيل التطبيق على جهاز فعلي دون الحاجة لإعداد بيئة تطويرية (development environment). إن كنت تريد تشغيل التطبيق على محاكي نظام iOS أو على جهاز Android افتراضي فانظر إرشادات بناء مشروع يحتوي شيفرة أصيلة للتعرف على كيفية تثبيت Xcode وإعداد البيئة التطويرية لنظام Android.
 
 
 
بعد إكمالك لعملية الإعداد، تستطيع تشغيل تطبيقك على جهاز Android الافتراضي عن طريق تنفيذ الأمر:<syntaxhighlight>
 
npm run android
 
</syntaxhighlight>كما تستطيع تشغيله على محاكي iOS بتنفيذ الأمر التالي (على نظام macOS فقط):<syntaxhighlight>
 
npm run ios
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
===محاذير يجب الانتباه إليها عند استخدام Expo===
+
=== مكون الصنف ===
 +
[https://snack.expo.dev/@hsoubwiki/hello-world-function-component تجربة حية للمثال]:<syntaxhighlight lang="javascript">
 +
import React, { Component } from 'react';
 +
import { Text, View } from 'react-native';
  
لأنّ مشروعك المبني باستخدام Expo لا يحتوي على شيفرة أصيلة، فلا يمكن تضمين وحدات أصلية مُخصّصة  (custom native modules) باستثناء واجهات React Native البرمجية (React Native APIs) والمكونات المتوفّرة في تطبيق عميل Expo (أي التطبيق الذي تثبته على هاتفك).
+
class HelloWorldApp extends Component {
 +
  render() {
 +
    return (
 +
      <View style={{
 +
          flex: 1,
 +
          justifyContent: "center",
 +
          alignItems: "center"
 +
        }}>
 +
        <Text>Hello, world!</Text>
 +
      </View>
 +
    );
 +
  }
 +
}
  
إن كنت تعلم مسبقًا أنك ستحتاج لإضافة شيفرةً أصيلة خاصة بك،  فلا يزال استخدام Expo خياراً مناسباً لبدء تعلّم React Native. إذ كل ما عليك فعله في هذه الحالة هو تنفيذ عمليّة [https://docs.expo.io/versions/latest/expokit/eject '''الإخراج''' عبر الأمر <code>eject</code>] لبناء شيفرتك الأصيلة. إن نفّذت عملية الإخراج، فمن الضروري اتباع الخطوات المذكورة في قسم "بناء مشاريع بشيفرة أصيلة" أسفله لمواصلة العمل على مشروعك.
+
export default HelloWorldApp;
 +
</syntaxhighlight>يمكنك الاطلاع على مزيد من أمثلة مكونات الصنف في [https://reactnative.dev/versions الإصدارات السابقة من هذا التوثيق باللغة الإنجليزية].
  
تقوم واجهة سطر أوامر Expo بإعداد مشروعك بأحدث نسخة من React Native يدعمها تطبيق عميل Expo. عادة ما يدعم تطبيق عميل Expo نسخةً جديدة من React Native بعد حوالي أسبوع من إصدارها كنسخة مستقرة. بإمكانك الإطلاع على هذا [https://docs.expo.io/versions/latest/sdk/#sdk-version المستند] لمعرفة الإصدارات المدعومة.
+
== ملاحظات المطور ==
 +
يأتي الأشخاص الذين يريدون تعلّم React Native من خلفيات متنوعة، فقد تكون لديك خبرة في مجموعة من التقنيات، من الويب إلى تطبيقات Android و iOS وغير ذلك، لذلك حاولنا كتابة هذا التوثيق للمطورين من جميع تلك الخلفيات. سنقدّم أحيانًا تفسيرات خاصة بإحدى المنصات أو غيرها كما يلي:
  
إن كنت تنوي دمج React Native مع مشروع قائم بالفعل، فتخطّ سطر أوامر Expo وابدأ مباشرة بإعداد بيئة التطوير باستخدام أدوات البناء الأصيلة. انظر "بناء مشاريع بشيفرة أصيلة" أسفله.
+
* '''Android''': قد يكون مطورو Android على دراية بهذا المفهوم.
 +
* '''iOS''': قد يكون مطورو iOS على دراية بهذا المفهوم.
 +
* '''الويب''': قد يكون مطورو الويب على دراية بهذا المفهوم.
  
==بناء مشاريع بشيفرة أصيلة==
+
حان الوقت للتعرف على أساس إطار عمل React Native وهو [[ReactNative/intro react native components|المكونات الأصيلة Native Components]]، بعد أن عرفت كيفية عمل هذا الدليل.
اتّبع هذه الإرشادات إن أردت بناء شيفرة أصيلة في مشروعك. على سبيل المثال، إن كنت تنوي دمج React Native في مشروع قائم بالفعل أو إذا نفّذت أمر "eject" على مشروع أُنشئَ باستخدام Expo أو أداة "Create React Native App" فستحتاج لهذا القسم.
 
  
تختلف هذه الإرشادات باختلاف نظام التشغيل الذي ستطور عليه وما إذا كنت تنوي أن تبدأ التطوير لنظام iOS أو Android. إن كنت تنوي التطوير لكلا النظامين في نفس الوقت فيُمكنك ذلك، لكن عليك القيام بعملية التثبيت لكل منهما على حدى نظراً لاختلاف إعداداتهما:
+
== مصادر ==
* [[ReactNative/getting started#.D8.A7.D9.84.D8.AA.D8.B7.D9.88.D9.8A.D8.B1 .D8.B9.D9.84.D9.89 .D9.86.D8.B8.D8.A7.D9.85 macOS .D9.84.D9.85.D9.86.D8.B5.D9.91.D8.A9 iOS|التطوير على نظام macOS لمنصّة iOS]]
 
* [[ReactNative/getting started#.D8.A7.D9.84.D8.AA.D8.B7.D9.88.D9.8A.D8.B1 .D8.B9.D9.84.D9.89 .D9.86.D8.B8.D8.A7.D9.85 macOS .D9.84.D9.85.D9.86.D8.B5.D9.91.D8.A9 Android|التطوير على نظام macOS لمنصّة Android]]
 
* [[ReactNative/getting started#.D8.A7.D9.84.D8.AA.D8.B7.D9.88.D9.8A.D8.B1 .D8.B9.D9.84.D9.89 .D9.86.D8.B8.D8.A7.D9.85 Windowns .D9.84.D9.85.D9.86.D8.B5.D9.91.D8.A9 Android|التطوير على نظام Windowns لمنصّة Android]]
 
* [[ReactNative/getting started#.D8.A7.D9.84.D8.AA.D8.B7.D9.88.D9.8A.D8.B1 .D8.B9.D9.84.D9.89 .D9.86.D8.B8.D8.A7.D9.85 Linux .D9.84.D9.85.D9.86.D8.B5.D9.91.D8.A9 Android|التطوير على نظام Linux لمنصّة Android]]
 
 
 
===التطوير على نظام macOS لمنصّة iOS===
 
====تثبيت المتطلبات====
 
 
 
ستحتاج إلى Node، وWatchman، وواجهة سطر أوامر React Native، إضافةً إلى Xcode.
 
 
 
رغم أنّك تستطيع استخدام أي محرر نصوص من اختيارك، سيتعين عليك تثبيت Xcode لإعداد الأدوات الضرورية لبناء تطبيق React Native لنظام iOS.
 
 
 
=====Node وWatchman =====
 
  
ننصح باستخدام [http://brew.sh/ Homebrew] لتثبيت Node و Watchman. قم بتنفيذ الأوامر التالية في طرفيّةٍ (Terminal) بعد تثبيت Homebrew:<syntaxhighlight>
+
* [https://reactnative.dev/docs/getting-started صفحة Introduction في توثيق React Native الرسمي.]
brew install node
 
  
brew install watchman
 
</syntaxhighlight>
 
 
إن سبَق وأن ثبّتت Node على نظامك، فتأكد أن النسخة هي 8.3 أو أحدث.
 
 
[https://facebook.github.io/watchman Watchman] أداةٌ من تطوير Facebook لمراقبة التغييرات التي تحدث في نظام الملفات (filesystem). ننصح بتثبيتها لأداءٍ أفضل.
 
 
=====واجهة React Native لسطر الأوامر (CLI)=====
 
 
تأتي حزمة Node مع أداة npm التي يُمكن استخدامها لتثبيت واجهة سطر أوامر React Native. نفّذ الأمر التالي في الطرفية لتثبيتها:<syntaxhighlight>
 
npm install -g react-native-cli
 
</syntaxhighlight>إن واجهت مشكلة مع الصلاحيات (Permissions)، فقد تحتاج إلى إضافة sudo قبل الأمر:<syntaxhighlight>
 
sudo npm install -g react-native-cli
 
</syntaxhighlight>إن واجهت خطأً كالتالي:<syntaxhighlight>
 
Cannot find module 'npmlog'
 
</syntaxhighlight>
 
 
فحاول تثبيت npm مباشرةً بتنفيذ الأمر التالي:<syntaxhighlight>
 
curl -0 -L https://npmjs.org/install.sh | sudo sh
 
</syntaxhighlight>
 
 
=====Xcode=====
 
 
أسهل طريقة لتثبيت Xcode هي عن طريق [https://itunes.apple.com/us/app/xcode/id497799835?mt=12 متجر تطبيقات Mac]. بتثبيت Xcode ستحصل كذلك على محاكي iOS وكل الأدوات الضرورية لبناء تطبيق iOS خاصّ بك.
 
 
إن ثبّتت Xcode مسبقاً، فتأكد أن النسخة هي 9.4 أو أحدث.
 
 
=====أدوات سطر الأوامر Command Line Tools =====
 
 
ستحتاج لتثبيت أدوات سطر الأوامر الخاصة ببيئة Xcode كذلك. شغِّل Xcode ثم اختر "Preferences" من قائمة Xcode. اذهب إلى تبويبة "Locations" ثم ثبت الأدوات باختيار أحدث نسخة من القائمة المنسدلة "Command Line Tools".
 
[[ملف:GettingStartedXcodeCommandLineTools.png|مركز|604x604بك]]
 
====إنشاء تطبيق جديد====
 
 
استخدم واجهة سطر الأوامر لإنشاء مشروع React Native جديد باسم "AwesomeProject":<syntaxhighlight>
 
react-native init AwesomeProject
 
</syntaxhighlight>هذه الخطوة غير ضرورية في حال كنت تريد دمج React Native  مع مشروع قائم بالفعل أو إن نفّذت الأمر "eject" على مشروع Expo أو  إن كان هدفك هو دعم نظام iOS لمشروع React Native قائم بالفعل. (انظر صفحة [[ReactNative/platform specific code|كتابة شيفرةٍ حسب المنصة]]).
 
 
====تشغيل تطبيقك====
 
 
نفذ الأمرين التاليين للانتقال إلى مجلد مشروع React Native الخاص بك وتشغيل التطبيق:<syntaxhighlight>
 
cd AwesomeProject
 
 
react-native run-ios
 
</syntaxhighlight>خلال لحظات سترى تطبيقك يعمل على محاكي نظام iOS. تنفيذ الأمر السابقِ طريقةٌ واحدةٌ فقط من الطرائق التي يُمكن بها تشغيل التطبيق. بإمكانك كذلك تشغيله من Xcode أو [https://nuclide.io/ Nuclide].
 
[[ملف:GettingStartediOSSuccess.png|مركز]]
 
 
ملاحظة: إن واجهت مشكلة في تشغيل التطبيق فراجع [[ReactNative/troubleshooting|صفحة تصويب الأخطاء]].
 
 
=====تشغيل التطبيق على جهاز فعلي=====
 
 
سيشغل  الأمر أعلاه التطبيق في محاكي iOS افتراضيًّا، إن أردت تشغيل التطبيق على جهاز iOS فعلي،فاتبع [[ReactNative/running on device|الإرشادات الموصوفة هنا.]]
 
 
=====تعديل التطبيق=====
 
 
بعد تشغيل التطبيق بنجاح، لنعدله.
 
 
* افتح ملف <code>App.js</code> في محرر النصوص المفضل لديك وقم بتعديل بعض الأسطر.
 
* اضغط على ‎<code>⌘R</code>‎ داخل محاكي iOS لإعادة تحميل التطبيق ولترى تعديلاتك.
 
 
=====هذا كل ما في الأمر!=====
 
 
تهانينا! لقد شغلت وعدلت تطبيقك الأول بنجاح.
 
 
====ماذا بعد؟====
 
 
* شغّل ميزة إعادة التحميل التلقائي (Live Reload) من قائمة المطور (Developer Menu). سيُعيد تطبيقك التحميل كلما حفظت تعديلاتك.
 
* إن أردت إضافة شيفرة React Native هذه لمشروع قائم بالفعل، راجع [[ReactNative/debugging|دليل الدّمج]].
 
 
لتعلّم المزيد حول React Native، ابدأ بقراءة [[ReactNative/tutorial|الدليل التطبيقي]].
 
 
===التطوير على نظام macOS لمنصّة Android===
 
===التطوير على نظام Windowns لمنصّة Android===
 
===التطوير على نظام Linux لمنصّة Android===
 
 
== مصادر ==
 
* [https://facebook.github.io/react-native/docs/getting-started توثيق React Native الرسمي.]
 
 
[[تصنيف:ReactNative]]
 
[[تصنيف:ReactNative]]
 +
[[تصنيف:React Native Docs]]

المراجعة الحالية بتاريخ 13:34، 9 أكتوبر 2021

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

كُتِب هذا التوثيق لجميع الأشخاص الذين يريدون تعلّم React Native بغض النظر عن مستوى خبرتهم أو خلفيتهم ابتداءً من من مطوري تطبيقات iOS الخبراء إلى متعلّمي React المبتدئين، والأشخاص الذين يتعلّمون البرمجة لأول مرة في حياتهم المهنية.

كيفية استخدام هذا التوثيق

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

المتطلبات الأساسية

ستحتاج إلى فهم أساسيات لغة JavaScript للعمل مع React Native. إن كنت جديدًا على لغة جافا سكريبت أو بحاجة إلى تجديد معلوماتك، فيمكنك الغوص في توثيق لغة JavaScript على موسوعة حسوب.

افترضنا عدم وجود معرفة مسبقة بتطوير تطبيقات React أو Android أو iOS لدى قارئ هذا التوثيق، ولكنها مواضيع قيّمة ليدرسها مطوّر React Native الطموح، لذلك ربطنا القارئ بالموارد والمقالات اللازمة ليتعمّق في هذه المواضيع أكثر.

أمثلة تفاعلية

يتيح لك هذا المدخل البدء على الفور ضمن متصفحك بأمثلة تفاعلية كهذا المثال (تجربة حية):

import React from 'react';
import { Text, View } from 'react-native';

const YourApp = () => {
  return (
    <View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
      <Text>
        Try editing me! 🎉
      </Text>
    </View>
  );
}

export default YourApp;

يمكنك استخدام الأداة Snack Player التي هي أداة مفيدة أنشأها Expo لتضمين وتشغيل مشاريع React Native ومشاركة كيفية تصييرها render على منصات مختلفة مثل Android و iOS. وضعنا لك قبل كل مثال رابطًا لتجربة حية له على Snack Player يمكِّنك من تجربة المثال على مختلف الأجهزة والبيئات إن أردت ذلك وحتى نسخ الشيفرة إلى حسابك على Expo أو يمكنك الاطلاع على المثال مباشرةً ونسخ الشيفرة من الموسوعة.

إن أردت إعداد بيئة تطوير محلية، فيمكنك اتباع دليلنا لإعداد بيئتك على جهازك المحلي ولصق أمثلة الشيفرة في ملف App.js الخاص بك (إذا كنت مطور ويب، فقد يكون لديك بالفعل بيئة محلية معدَّة لاختبار متصفح الهاتف المحمول).

مكونات الدالة Function Components ومكونات الصنف Class Components

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

ظهرت الخطافات Hooks في الإصدار 0.59 من React Native، وبما أن الخطافات هي الطريقة المستقبلية لكتابة مكونات React الخاصة بك، فقد استخدمنا أمثلة لمكونات الدالة بالإضافة إلى مكونات الصنف كما يلي:

مكون الدالة

تجربة حية للمثال:

import React from 'react';
import { Text, View } from 'react-native';

const HelloWorldApp = () => {
  return (
    <View style={{
        flex: 1,
        justifyContent: 'center',
        alignItems: 'center'
      }}>
      <Text>Hello, world!</Text>
    </View>
  );
}

export default HelloWorldApp;

مكون الصنف

تجربة حية للمثال:

import React, { Component } from 'react';
import { Text, View } from 'react-native';

class HelloWorldApp extends Component {
  render() {
    return (
      <View style={{
          flex: 1,
          justifyContent: "center",
          alignItems: "center"
        }}>
        <Text>Hello, world!</Text>
      </View>
    );
  }
}

export default HelloWorldApp;

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

ملاحظات المطور

يأتي الأشخاص الذين يريدون تعلّم React Native من خلفيات متنوعة، فقد تكون لديك خبرة في مجموعة من التقنيات، من الويب إلى تطبيقات Android و iOS وغير ذلك، لذلك حاولنا كتابة هذا التوثيق للمطورين من جميع تلك الخلفيات. سنقدّم أحيانًا تفسيرات خاصة بإحدى المنصات أو غيرها كما يلي:

  • Android: قد يكون مطورو Android على دراية بهذا المفهوم.
  • iOS: قد يكون مطورو iOS على دراية بهذا المفهوم.
  • الويب: قد يكون مطورو الويب على دراية بهذا المفهوم.

حان الوقت للتعرف على أساس إطار عمل React Native وهو المكونات الأصيلة Native Components، بعد أن عرفت كيفية عمل هذا الدليل.

مصادر