React (برنامج)

React (المعروفة أيضًا باسم React.js أو ReactJS ) هي مكتبة جافا سكريبت مجانية ومفتوحة المصدر لتطوير واجهات المستخدم الأمامية [ 6 ] [ 7 ] ، تهدف إلى جعل بناء واجهات المستخدم القائمة على المكونات أكثر سلاسة. [ 6 ] تتولى شركة Meta (فيسبوك سابقًا) ومجتمع من المطورين الأفراد والشركات صيانتها. [ 8 ] [ 9 ] [ 10 ] ووفقًا لاستطلاع Stack Overflow للمطورين لعام 2025، تُعد React من أكثر تقنيات الويب استخدامًا. [ 11 ]

يمكن استخدام React لتطوير تطبيقات أحادية الصفحة ، وتطبيقات الجوال، وتطبيقات العرض من جانب الخادم باستخدام أطر عمل مثل Next.js و React Router . ولأن React يركز فقط على واجهة المستخدم وعرض المكونات في DOM ، فإن تطبيقات React غالبًا ما تعتمد على مكتبات للتوجيه ووظائف أخرى من جانب العميل. [ 12 ] [ 13 ] ومن أهم مزايا React أنه يعيد عرض أجزاء الصفحة التي تغيرت فقط، متجنبًا إعادة عرض عناصر DOM غير المتغيرة. ويُستخدم React في ما يُقدّر بنحو 6% من جميع مواقع الويب. [ 14 ]

سمات

تصريحي

يلتزم React بنموذج البرمجة التصريحية . [ 15 ] [ 16 ] : 76 يقوم المطورون بتصميم واجهات المستخدم لكل حالة من حالات التطبيق، ويقوم React بتحديث وعرض المكونات عند تغيير البيانات. وهذا يختلف عن البرمجة الإجرائية . [ 17 ]

عناصر

يتكون كود React من كيانات تُسمى المكونات . [ 16 ] : 10-12 هذه المكونات معيارية وقابلة لإعادة الاستخدام. [ 16 ] : 70 تتكون تطبيقات React عادةً من طبقات متعددة من المكونات. تُعرض المكونات على عنصر جذر في DOM باستخدام مكتبة React DOM. عند عرض مكون، تُمرر القيم بين المكونات عبر props (اختصارًا لـ "الخصائص") . تُسمى القيم الداخلية للمكون حالته . [ 18 ]

الطريقتان الرئيسيتان لتعريف المكونات في React هما مكونات الدوال ومكونات الأصناف. [ 16 ] : 118 [ 19 ] : 10 ومنذ إصدار React v16.8، يُنصح باستخدام مكونات الدوال.

مكونات الوظائف

تُعرَّف مكونات الدوال، التي أُعلن عنها في مؤتمر React Conf 2018 والمتاحة منذ React v16.8، باستخدام دالة تقبل وسيطًا واحدًا باسم "props" وتعيد JSX (JavaScript XML). ويمكن لمكونات الدوال استخدام الحالة الداخلية باستخدام useStateHook. [ 20 ]

خطافات التفاعل

في 16 فبراير 2019، تم إطلاق React 16.8 للجمهور، مُقدّمةً ميزة React Hooks. [ 20 ] تُعدّ Hooks دوالًا تُمكّن المطورين من الوصول إلى حالة React وميزات دورة حياتها من خلال مكونات الدوال. [ 21 ] والجدير بالذكر أن Hooks لا تعمل داخل الفئات، بل تُمكّن المطورين من استخدام المزيد من ميزات React دون الحاجة إلى الفئات. [ 22 ]

توفر React العديد من الخطافات المدمجة، مثل useState[ 23 ] [ 19 ] : 37 ،useContext [ 16 ] : 11 ، [ 23 ] [ 19 ] : 12useReducer ، [ 16 ] : 92، [ 23 ] [ 19 ] : 65-66، useMemo[ 16 ] : 154 ، [ 23 ] [ 19 ] : 162 ، و [ 24 ] [ 19 ] : 93-95useEffect . توجد خطافات أخرى موثقة في مرجع واجهة برمجة تطبيقات الخطافات [ 25 ] [ 16 ] : 62 ، وهي الأكثر استخدامًا، وتُستخدم للتحكم في الحالة [ 16 ] : 37 والآثار الجانبية [ 16 ] : 61 على التوالي.useStateuseEffect

قواعد الخطافات

هناك قاعدتان للخطافات [ 26 ] تصفان أنماط التعليمات البرمجية المميزة التي تعتمد عليها الخطافات:

  1. "استدعِ الخطافات فقط على المستوى الأعلى" - لا تستدعِ الخطافات من داخل الحلقات أو الشروط أو العبارات المتداخلة بحيث يتم استدعاء الخطافات بنفس الترتيب في كل عملية عرض.
  2. "استدعِ الخطافات فقط من وظائف React" - لا تستدعِ الخطافات من وظائف JavaScript العادية حتى تبقى منطق الحالة مع المكون.

على الرغم من عدم إمكانية تطبيق هذه القواعد أثناء التشغيل، إلا أنه يمكن تهيئة أدوات تحليل الشفرة، مثل أدوات فحص الأخطاء البرمجية، لاكتشاف العديد من الأخطاء أثناء التطوير. تنطبق هذه القواعد على كلٍ من استخدام الخطافات (Hooks) وتنفيذ الخطافات المخصصة [ 27 ] التي قد تستدعي خطافات أخرى.

مكونات الخادم

مكونات خادم React ( RSC ) [ 28 ] هي مكونات وظيفية تعمل حصريًا على الخادم. طُرح هذا المفهوم لأول مرة في محاضرة "جلب البيانات باستخدام مكونات الخادم" [ 29 ] . حاليًا، تُعد مكونات الخادم أكثر سهولة في الاستخدام مع Next.js. باستخدام Next.js، يُمكن كتابة مكونات لكل من الخادم والعميل (المتصفح). عندما يستقبل المتصفح مكونًا مُنشأً من الخادم، يتولى React في المتصفح المهمة، فيُنشئ DOM افتراضيًا ويُلحق معالجات الأحداث. تُسمى هذه العملية "الترطيب" [ 30 ] .

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

async function MyComponent () {const message = await fetchMessageFromDb ();يعود (<div> الرسالة : { الرسالة } < / div >);}

مكونات الفئة

يتم تعريف مكونات الفئة باستخدام فئات ES6 . وهي تتصرف بنفس طريقة مكونات الدالة، ولكن بدلاً من استخدام الخطافات لإدارة الحالة وأحداث دورة الحياة، فإنها تستخدم أساليب دورة الحياة في React.Componentالفئة الأساسية .

class ParentComponent extends React.Component {state = { color : 'green' };يجعل () {يعود (< ChildComponent color = { this.state.color } / >);}}

التوجيه

لا يدعم React التوجيه بشكلٍ مُدمج . فهو في الأساس مكتبة لبناء واجهات المستخدم، ولا يتضمن حلاً متكاملاً للتوجيه جاهزاً للاستخدام. يمكن استخدام مكتبات خارجية لإدارة التوجيه في تطبيقات React، مثل React Router. [ 31 ] يُمكّن هذا المطور من تحديد المسارات، وإدارة التنقل، والتعامل مع تغييرات عناوين URL بطريقة مُلائمة لبيئة React.

يوجد نموذج DOM افتراضي يُستخدم لتنفيذ نموذج DOM الحقيقي

دوم افتراضي

من الميزات البارزة الأخرى استخدام نموذج كائن المستند الافتراضي ( Virtual DOM ). يُنشئ React بنية بيانات في الذاكرة ، مشابهة لنموذج كائن المستند في المتصفح. في كل مرة يتم فيها عرض المكونات، تُقارن النتيجة مع نموذج كائن المستند الافتراضي. ثم يُحدّث نموذج كائن المستند المعروض في المتصفح بكفاءة باستخدام الفروقات المحسوبة فقط. [ 32 ] تُسمى هذه العملية بالتوفيق . يُمكّن هذا المبرمج من كتابة التعليمات البرمجية كما لو أن الصفحة بأكملها تُعرض عند كل تغيير، بينما يعرض React فقط المكونات التي تتغير فعليًا. يوفر هذا العرض الانتقائي تحسينًا كبيرًا في الأداء. [ 33 ] [ 34 ]

التحديثات

عند استدعاء ReactDOM.render[ 35 ] مرة أخرى لنفس المكون والهدف، يُمثل React حالة واجهة المستخدم الجديدة في DOM الافتراضي ويحدد أي أجزاء (إن وجدت) من DOM الحي تحتاج إلى التغيير. [ 36 ]

تخضع تحديثات realDOM لـ virtualDOM
سيقوم نموذج DOM الافتراضي بتحديث نموذج DOM الحقيقي في الوقت الفعلي.

أساليب دورة الحياة

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

  • ShouldComponentUpdateيسمح للمطور بمنع إعادة عرض المكون بشكل غير ضروري عن طريق إرجاع القيمة "خطأ" إذا لم تكن عملية العرض مطلوبة.
  • componentDidMountيتم استدعاء هذه الدالة بمجرد "تثبيت" المكون (أي بعد إنشاء المكون في واجهة المستخدم، غالبًا عن طريق ربطه بعقدة DOM ). ويُستخدم هذا عادةً لتشغيل تحميل البيانات من مصدر بعيد عبر واجهة برمجة التطبيقات (API) .
  • componentDidUpdateيتم استدعاؤها مباشرة بعد حدوث التحديث. [ 37 ]
  • componentWillUnmountيتم استدعاء هذه العملية مباشرةً قبل إزالة المكون أو "إلغاء تحميله". ويُستخدم هذا عادةً لإزالة التبعيات التي تستهلك موارد كثيرة للمكون والتي لن تُزال ببساطة عند إلغاء تحميله (مثل إزالة أي setInterval()مثيلات مرتبطة بالمكون، أو " مستمع حدث " مُعيّن على "المستند" بسبب وجود المكون).
  • renderتُعدّ هذه الطريقة أهمّ طريقة في دورة حياة المكوّن، وهي الطريقة الوحيدة المطلوبة في أيّ مكوّن. وعادةً ما يتمّ استدعاؤها في كلّ مرّة يتمّ فيها تحديث حالة المكوّن، وهو ما يجب أن ينعكس في واجهة المستخدم.

JSX

JSX ، أو JavaScript XML، هو امتداد لبنية لغة JavaScript. [ 38 ] يشبه في مظهره لغة HTML، [ 16 ] : 11 يوفر JSX طريقة لهيكلة عرض المكونات باستخدام بنية مألوفة [ 16 ] : 15 للعديد من المطورين. عادةً ما تُكتب مكونات React باستخدام JSX، على الرغم من أنه ليس من الضروري ذلك (يمكن أيضًا كتابة المكونات بلغة JavaScript خالصة). أثناء الترجمة، يتم تحويل JSX إلى كود JavaScript. يشبه JSX بنية امتداد أخرى أنشأتها فيسبوك للغة PHP تُسمى XHP .

مثال على كود JSX:

دالة المثال () { // تعريف متغير حالة جديد، والذي سنسميه "count" const [ count , setCount ] = useState ( 0 );return ( <div> <p> لقد نقرت { count } مرة </ p > < button onClick = { ( ) => setCount ( count + 1 ) } > انقر هنا < / button > </div> ) ; }

هندسة معمارية تتجاوز لغة HTML

لا تقتصر بنية React الأساسية على عرض صفحات HTML في المتصفح فحسب، بل تتعداها إلى تطبيقات أخرى. فعلى سبيل المثال، يستخدم فيسبوك رسومًا بيانية ديناميكية تُعرض ضمن <canvas>وسوم HTML، [ 39 ] كما تستخدم نتفليكس وباي بال تقنية التحميل الشامل لعرض صفحات HTML متطابقة على كلٍ من الخادم والعميل. [ 40 ] [ 41 ] ويمكن أيضًا استخدام React لتطوير تطبيقات أصلية لأنظمة أندرويد وiOS باستخدام React Native .

عرض من جانب الخادم

يشير مصطلح "العرض من جانب الخادم " (SSR) إلى عملية عرض تطبيق جافا سكريبت من جانب العميل على الخادم، بدلاً من المتصفح. [ 42 ] وهذا من شأنه تحسين أداء التطبيق، خاصةً للمستخدمين الذين لديهم اتصالات أو أجهزة بطيئة. [ 43 ]

باستخدام تقنية SSR، يتضمن كود HTML الأولي المُرسل إلى العميل واجهة المستخدم الكاملة للتطبيق. [ 44 ] وهذا يسمح لمتصفح العميل بعرض واجهة المستخدم فورًا، بدلًا من انتظار تحميل وتنفيذ جافا سكريبت قبل عرض واجهة المستخدم. [ 44 ]

يدعم React تقنية SSR، التي تُمكّن المطورين من عرض مكونات React على الخادم وإرسال ملف HTML الناتج إلى العميل. [ 45 ] يُمكن أن يكون هذا مفيدًا لتحسين أداء التطبيق، وكذلك لأغراض تحسين محركات البحث . [ 46 ]

مصطلحات شائعة

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

تدفق البيانات أحادي الاتجاه

لدعم مفهوم تدفق البيانات أحادي الاتجاه في React (والذي قد يُقارن بتدفق البيانات ثنائي الاتجاه في AngularJS )، طُوِّرت بنية Flux كبديل لبنية نموذج-عرض-متحكم الشائعة . تتميز Flux بإرسال الإجراءات عبر مُرسِل مركزي إلى مخزن ، ثم تُنقل التغييرات التي تطرأ على المخزن إلى العرض. [ 47 ] عند استخدامها مع React، يتم هذا النقل عبر خصائص المكونات. منذ ظهورها، حلت مكتبات مثل Redux وMobX محل Flux. [ 48 ]

يمكن اعتبار التدفق أحد أشكال نمط المراقب . [ 49 ]

لا ينبغي لمكون React ضمن بنية Flux تعديل أي خصائص مُمرَّرة إليه مباشرةً، بل يجب أن تُمرَّر إليه دوال رد نداء تُنشئ إجراءات يُرسلها المُرسِل لتعديل المخزن. الإجراء هو كائن مهمته وصف ما حدث: على سبيل المثال، قد يحتوي إجراء يصف مستخدمًا "يتابع" آخر على معرّف المستخدم، ومعرّف المستخدم المستهدف، والنوع USER_FOLLOWED_ANOTHER_USER. [ 50 ] يمكن للمخازن، التي يُمكن اعتبارها نماذج، أن تُغيّر نفسها استجابةً للإجراءات الواردة من المُرسِل.

يُعبّر عن هذا النمط أحيانًا بعبارة "تتدفق الخصائص إلى الأسفل، وتتدفق الإجراءات إلى الأعلى". وقد تم إنشاء العديد من تطبيقات Flux منذ نشأتها، ولعل أشهرها Redux ، التي تتميز بمخزن واحد، يُطلق عليه غالبًا مصدر الحقيقة الوحيد . [ 51 ]

في فبراير 2019، useReducerتم تقديمها كخطاف React في الإصدار 16.8. وهي توفر واجهة برمجة تطبيقات متوافقة مع Redux، مما يُمكّن المطورين من إنشاء مخازن شبيهة بـ Redux محلية لحالات المكونات. [ 52 ]

تاريخ

تم إنشاء React بواسطة جوردان والكي، مهندس برمجيات في شركة فيسبوك (التي تُعرف الآن باسم ميتا )، والذي طور في البداية نموذجًا أوليًا يُسمى "F-Bolt" [ 53 ] قبل أن يُعيد تسميته لاحقًا إلى "FaxJS". هذه النسخة المبكرة موثقة في مستودع جوردان والكي على GitHub.تضمنت المؤثرات على المشروع XHP ، وهي مكتبة مكونات HTML لـ PHP .

تم نشر React لأول مرة على موجز الأخبار في فيسبوك في عام 2011 وتم دمجه لاحقًا في إنستغرام في عام 2012. [ 54 ] في مايو 2013، في مؤتمر JSConf US، تم جعل المشروع مفتوح المصدر رسميًا، مما يمثل نقطة تحول مهمة في اعتماده ونموه.

تم الإعلان عن React Native ، الذي يتيح تطوير تطبيقات Android و iOS و UWP الأصلية باستخدام React، في مؤتمر React Conf التابع لشركة Facebook في فبراير 2015 وتم طرحه كمصدر مفتوح في مارس 2015.

في 18 أبريل 2017، أعلنت فيسبوك عن React Fiber، وهي مجموعة جديدة من الخوارزميات الداخلية للعرض، بدلاً من خوارزمية العرض القديمة في React، Stack. [ 55 ] وكان من المقرر أن تصبح React Fiber أساس أي تحسينات مستقبلية وتطوير لميزات مكتبة React. [ 56 ]لم تتغير الصيغة الفعلية للبرمجة باستخدام React؛ بل تغيرت فقط طريقة تنفيذها. [ 57 ] طُوّر نظام العرض القديم لـ React، المسمى Stack، في وقت لم يكن فيه مفهوم تركيز النظام على التغيير الديناميكي واضحًا. كان Stack بطيئًا في رسم الرسوم المتحركة المعقدة، على سبيل المثال، محاولًا إنجازها كلها في جزء واحد. أما Fiber، فيقسم الرسوم المتحركة إلى أجزاء يمكن توزيعها على عدة إطارات. وبالمثل، يمكن تقسيم بنية الصفحة إلى أجزاء يمكن صيانتها وتحديثها بشكل منفصل. تُسمى دوال JavaScript وكائنات DOM الافتراضية "أليافًا"، ويمكن تشغيل كل منها وتحديثها بشكل منفصل، مما يسمح بعرض أكثر سلاسة على الشاشة. [ 58 ]

في 26 سبتمبر 2017، تم إطلاق React 16.0 للجمهور. [ 59 ] قدم React 16.0 ميزة حدود الأخطاء، وهي نوع جديد من المكونات يلتقط أخطاء JavaScript في أي مكان ضمن شجرة المكونات الفرعية، ويعرض واجهة مستخدم بديلة بدلاً من التسبب في تعطل التطبيق. [ 60 ]

في 20 أكتوبر 2020، أصدر فريق React الإصدار React v17.0، والذي يُعد أول إصدار رئيسي دون تغييرات كبيرة على واجهة برمجة التطبيقات (API) الخاصة بمطوري React. [ 61 ]

في 29 مارس 2022، تم إصدار React 18 الذي قدم مُعالج عرض متزامن جديد، وتجميع تلقائي، ودعمًا للعرض من جانب الخادم باستخدام Suspense. [ 62 ] وقد توقف دعم React 18 لمتصفح Internet Explorer 11. [ 63 ]

في 5 ديسمبر 2024، تم إصدار React 19. قدم هذا الإصدار ميزة Actions، التي تُبسط عملية تحديث الحالة باستخدام الدوال غير المتزامنة بدلاً من التعامل اليدوي مع الحالات المعلقة والأخطاء والتحديثات التفاؤلية. كما تضمن React 19 دعمًا لمكونات الخادم وتحسينًا لإنشاء المواقع الثابتة. [ 64 ]

في أكتوبر 2025، أعلنت شركة ميتا أنها ستتبرع بـ React وReact Native وJSX ( جافا سكريبت XML ) لمؤسسة React الجديدة، التابعة لمؤسسة لينكس . [ 65 ] وفي 24 فبراير 2026، انطلقت مؤسسة React رسميًا، حيث ساهمت شركة ميتا بلاتفورمز، إنك. بمشروع React للمؤسسة. [ 66 ]

في 29 نوفمبر 2025، تم الإبلاغ عن ثغرة أمنية CVE-2025-55182، المعروفة أيضًا باسم React2Shell، والتي تسمح بتنفيذ التعليمات البرمجية عن بُعد. وقد حصلت هذه الثغرة على أعلى درجة خطورة (10.0) وفقًا لمعيار CVSS . [ 67 ] [ 68 ] وتم إصلاحها في الإصدارات 19.0.1 و19.1.2 و19.2.1. [ 69 ]

في 11 ديسمبر 2025، كشف فريق React عن ثغرات أمنية إضافية في مكونات خادم React: ثغرات حجب الخدمة (CVE-2025-55184 وCVE-2025-67779، CVSS 7.5) وثغرات كشف شفرة المصدر (CVE-2025-55183، CVSS 5.3). [ 70 ] [ 71 ] [ 72 ] [ 73 ] [ 74 ] وتم تطبيق الإصلاحات على الإصدارات 19.0.3 و19.1.4 و19.2.3. [ 75 ]

تاريخ إصدارات React
إصدارتاريخ الافراج عنهالتغييرات
0.3.029 مايو 2013الإصدار العام الأولي
0.4.020 يوليو 2013دعم عقد التعليقات ، تحسين واجهات برمجة تطبيقات العرض من جانب الخادم، إزالة React.autoBind، دعم خاصية المفتاح، تحسينات على النماذج، إصلاح الأخطاء.<div>{/* */}</div>
0.5.020 أكتوبر 2013تحسين استخدام الذاكرة، ودعم أحداث التحديد والتركيب، ودعم getInitialState و getDefaultProps في mixins، وإضافة React.version و React.isValidClass، وتحسين التوافق مع نظام التشغيل Windows.
0.8.020 ديسمبر 2013تمت إضافة دعم للصفوف والأعمدة، والتأجيل والتزامن، وحلقات التكرار ، وسمات التصحيح التلقائي. تمت إضافة أحداث قائمة السياق، وتحديث أدوات jstransform وesprima-fb، وتحديث browserify.<audio><video>
0.9.020 فبراير 2014تمت إضافة دعم لخصائص crossOrigin و download و hrefLang و mediaGroup و muted و sandbox و seamless و srcDoc و scope، وتمت إضافة أي، ومصفوفة من، ومكون، وواحد من النوع، وقابل للعرض، وشكل إلى React.PropTypes، وتمت إضافة دعم لحدثي onMouseOver و onMouseOut، وتمت إضافة دعم لحدثي onLoad و onError على العناصر.<img>
0.10.021 مارس 2014تمت إضافة دعم لسمات srcSet و textAnchor، وإضافة وظيفة تحديث للبيانات غير القابلة للتغيير، والتأكد من أن جميع العناصر الفارغة لا تُدرج علامة إغلاق.
0.11.017 يوليو 2014تحسين دعم SVG، وتوحيد حدث e.view، وتحديث أمر $apply، وإضافة دعم لمساحات الأسماء، وإضافة واجهة برمجة تطبيقات transformWithDetails جديدة، وتضمين حزم مُجهزة مسبقًا ضمن dist/، وMyComponent() تُرجع الآن واصفًا، وليس مثيلًا.
0.12.021 نوفمبر 2014تمت إضافة ميزات جديدة: تم تقديم عامل النشر ({...}) لإلغاء استخدام this.transferPropsTo، تمت إضافة دعم لسمات HTML الخاصة بـ acceptCharset و classID و manifest، تمت إضافة React.addons.batchedUpdates إلى واجهة برمجة التطبيقات، لم يعد React.DOM @jsx مطلوبًا، تم إصلاح المشكلات المتعلقة بانتقالات CSS.
0.13.010 مارس 2015الأنماط المهملة التي تم التحذير منها في الإصدار 0.12 لم تعد تعمل، تم تغيير ترتيب حل المراجع، تمت إزالة الخاصيتين this._pendingState و this._rootNodeID، دعم فئات ES6، إضافة واجهة برمجة التطبيقات React.findDOMNode(component)، دعم المكررات وتسلسلات immutable-js، إضافة ميزات جديدة React.addons.createFragment، إهمال React.addons.classSet.
15.0.07 أبريل 2016يستخدم العرض الأولي الآن document.createElement بدلاً من إنشاء HTML، لا مزيد من العناصر الإضافية، دعم محسّن لـ SVG، غير شفاف، تم تقديم عمليات إيقاف جديدة مع تحذير، تم إصلاح العديد من تسريبات الذاكرة الصغيرة، يدعم React DOM الآن سمات HTML cite و profile وخصائص CSS cssFloat و gridRow و gridColumn.<span>ReactPerf.getLastMeasurements()
15.1.020 مايو 2016إصلاح خطأ في التجميع، ضمان استخدام أحدث إصدار من أداة تعيين الكائنات، إصلاح التراجع، إزالة استخدام أداة الدمج، إعادة تسمية بعض الوحدات.
15.2.01 يوليو 2016تضمين معلومات عن تسلسل المكونات، إيقاف التحقق من صحة الخصائص عند وقت التحميل، إضافة React.PropTypes.symbol، إضافة معالجة onLoad إلى العنصر ومعالجة onError إلى العنصر، إضافة واجهة برمجة التطبيقات، إصلاح تراجع الأداء.<link><source>isRunning()
15.3.030 يوليو 2016إضافة React.PureComponent، إصلاح مشكلة عرض الخادم المتداخل، إضافة xmlns و xmlnsXlink لدعم سمات SVG و referrerPolicy لسمات HTML، تحديثات React Perf Add-on، إصلاح مشكلة ref.
15.4.016 نوفمبر 2016لم تعد حزمة React وبنية المتصفح تتضمن React DOM، وتم تحسين أداء التطوير، وإصلاح حالات فشل الاختبار العرضية، وتحديث واجهة برمجة تطبيقات batchedUpdates، وReact Perf، و ReactTestRenderer.create().
15.5.07 أبريل 2017تمت إضافة react-dom/test-utils، وإزالة peerDependencies، وإصلاح مشكلة في Closure Compiler، وإضافة تحذير بشأن إهمال React.createClass و React.PropTypes، وإصلاح خطأ في Chrome.
15.6.013 يونيو 2017أضف دعمًا لمتغيرات CSS في سمة النمط وخصائص نمط الشبكة، وقم بإصلاح دعم AMD للإضافات التي تعتمد على React، وقم بإزالة التبعية غير الضرورية، وأضف تحذيرًا بشأن إهمال React.createClass ومساعدي مصنع React.DOM.
16.0.026 سبتمبر 2017تحسين معالجة الأخطاء من خلال إدخال "حدود الخطأ"، يسمح React DOM بتمرير السمات غير القياسية، تغييرات طفيفة على سلوك setState، إزالة بناء react-with-addons.js، إضافة React.createClass كـ create-react-class، وReact.PropTypes كـ prop-types، وReact.DOM كـ react-dom-factories، تغييرات على سلوك طرق الجدولة ودورة الحياة.
16.1.09 نوفمبر 2017إيقاف إصدارات Bower، إصلاح متغير عام إضافي غير مقصود في إصدارات UMD، إصلاح تشغيل onMouseEnter و onMouseLeave، إصلاح العنصر النائب <textarea>، إزالة التعليمات البرمجية غير المستخدمة، إضافة تبعية package.json مفقودة، إضافة دعم لأدوات مطوري React.
16.3.029 مارس 2018إضافة واجهة برمجة تطبيقات سياقية جديدة مدعومة رسميًا، إضافة حزمة جديدة لمنع حدوث حلقة لا نهائية عند محاولة عرض البوابات باستخدام SSR، إصلاح مشكلة في this.state، إصلاح مشكلة في IE/Edge.
16.4.024 مايو 2018أضف دعمًا لمواصفات أحداث المؤشر، وأضف إمكانية تحديد أنواع الخصائص، وأصلح سياق القراءة، وأصلح getDerivedStateFromProps()الدعم، وأصلح عطل testInstance.parent، وأضف مكون React.unstable_Profiler لقياس الأداء، وغيّر أسماء الأحداث الداخلية.
16.5.05 سبتمبر 2018أضف دعمًا لأداة تحليل الأداء في أدوات مطوري React، وتعامل مع الأخطاء في المزيد من الحالات الشاذة بسلاسة، وأضف react-dom/profiling، وأضف حدث onAuxClick للمتصفحات، وأضف حقلي movementX و movementY إلى أحداث الماوس، وأضف حقلي tangentialPressure و twist إلى حدث المؤشر.
16.6.023 أكتوبر 2018إضافة دعم لنوع السياق، ودعم مستويات الأولوية، والاستمراريات، وردود الاتصال المغلفة، وتحسين آلية التراجع، وإصلاح التراكب الرمادي على متصفح سفاري في نظام iOS، وإضافة React.lazy()مكونات لتقسيم التعليمات البرمجية.
16.7.020 ديسمبر 2018إصلاح أداء React.lazy للمكونات المحملة بشكل كسول، مسح الحقول عند إلغاء التحميل لتجنب تسرب الذاكرة، إصلاح خطأ في SSR، إصلاح تراجع الأداء.
16.8.06 فبراير 2019إضافة خطافات، إضافة ReactTestRenderer.act()و ReactTestUtils.act()لتحديثات الدفعات، دعم الكائنات المتزامنة التي يتم تمريرها إلى React.lazy()، تحسين واجهة برمجة تطبيقات التهيئة الكسولة لخطاف useReducer.
16.9.09 أغسطس 2019أضف واجهة برمجة تطبيقات React.Profiler لجمع قياسات الأداء برمجيًا. استبدل unstable_ConcurrentMode بـ unstable_createRoot
16.10.027 سبتمبر 2019تم إصلاح حالة نادرة حيث لم يتم تخزين تحديث الخطاف مؤقتًا. تم إصلاح الخوارزمية الاستدلالية لتحديد وقت إعادة الترطيب، حتى لا تتم إعادة الترطيب بشكل خاطئ أثناء التحديث. تم مسح حقول الألياف الإضافية أثناء إلغاء التحميل لتوفير الذاكرة. تم إصلاح خطأ في حقول النص المطلوبة في Firefox. يُفضل استخدام Object.is بدلاً من polyfill المضمن، عند توفره. تم إصلاح خطأ عند دمج Suspense ومعالجة الأخطاء.
16.11.022 أكتوبر 2019تم إصلاح معالجات حدث mouseenter التي كانت تُفعّل مرتين داخل حاويات React المتداخلة. أُزيلت واجهات برمجة التطبيقات التجريبية unstable_createRoot و unstable_createSyncRoot. (وهي متوفرة في القناة التجريبية باسم createRoot و createSyncRoot).
16.12.014 نوفمبر 2019React DOM – إصلاح مشكلة عدم تفعيل التأثيرات السلبية useEffectفي تطبيق متعدد الجذور. React Is – إصلاح مشكلة lazyاعتبار memoأنواع العناصر عناصر بدلاً من مكونات
16.13.026 فبراير 2020تمت إضافة ميزات جديدة في وضع React Concurrent. تم إصلاح الأخطاء في مكتبة React الأساسية و React Dom.
16.14.014 أكتوبر 2020أضف دعمًا لتحويل JSX الجديد.
17.0.020 أكتوبر 2020تتيح ميزة "لا توجد ميزات جديدة" تحديثات React التدريجية من الإصدارات القديمة. إضافة تحويل JSX جديد، وتغييرات على تفويض الأحداث.
18.0.029 مارس 2022React المتزامن، والتجميع التلقائي، وميزات التشويق الجديدة، والانتقالات، وواجهات برمجة تطبيقات العرض من جانب العميل والخادم، وسلوكيات الوضع الصارم الجديدة، والخطافات الجديدة [ 76 ]
18.1.026 أبريل 2022العديد من الإصلاحات وتحسينات الأداء
18.2.014 يونيو 2022العديد من الإصلاحات وتحسينات الأداء الأخرى
18.3.025 أبريل 2024يضيف تحذيرات بشأن إهمال الميزات في React 19.
19.0.05 ديسمبر 2024الإجراءات، والخطافات الجديدة (useActionState، وuseFormStatus، وuseOptimistic)، واستخدام واجهة برمجة التطبيقات، ومكونات الخادم، وإجراءات الخادم، وتمرير المرجع كخاصية عادية، وتحسين اختلافات الترطيب، وتحسين واجهة برمجة تطبيقات السياق، ووظائف تنظيف المراجع، وتحسين واجهة برمجة تطبيقات useDeferredValue، ودعم بيانات تعريف المستند، ودعم أوراق الأنماط، ودعم البرامج النصية غير المتزامنة، ودعم التحميل المسبق للموارد، وتحسين الإبلاغ عن الأخطاء، ودعم العناصر المخصصة.

الترخيص

استخدمت النسخة العامة الأولى من React في مايو 2013 رخصة Apache 2.0 . وفي أكتوبر 2014، استبدلت React 0.12.00 هذه الرخصة برخصة BSD ثلاثية البنود ، وأضافت ملفًا نصيًا منفصلاً باسم PATENTS يسمح باستخدام أي براءات اختراع تابعة لشركة Facebook متعلقة بالبرنامج: [ 77 ]

ينتهي الترخيص الممنوح بموجب هذا الاتفاق تلقائيًا ودون إشعار مسبق، لأي شخص يقدم أي مطالبة (بما في ذلك عن طريق رفع أي دعوى قضائية أو تأكيد أو إجراء آخر) يدعي (أ) انتهاكًا مباشرًا أو غير مباشر أو مساهمًا أو تحريضًا على انتهاك أي براءة اختراع: (1) من قبل فيسبوك أو أي من الشركات التابعة لها أو الشركات المرتبطة بها، سواء كانت هذه المطالبة متعلقة بالبرنامج أم لا، (2) من قبل أي طرف إذا نشأت هذه المطالبة كليًا أو جزئيًا من أي برنامج أو منتج أو خدمة لفيسبوك أو أي من الشركات التابعة لها أو الشركات المرتبطة بها، سواء كانت هذه المطالبة متعلقة بالبرنامج أم لا، أو (3) من قبل أي طرف يتعلق بالبرنامج؛ أو (ب) أن أي حق في أي مطالبة ببراءة اختراع لفيسبوك غير صالح أو غير قابل للتنفيذ.

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

استنادًا إلى ملاحظات المجتمع، قام فيسبوك بتحديث منح براءة الاختراع في أبريل 2015 ليكون أقل غموضًا وأكثر تساهلاً: [ 79 ]

ينتهي الترخيص الممنوح بموجب هذه الاتفاقية تلقائيًا ودون إشعار مسبق، إذا قمتَ (أو أيٌّ من شركاتك التابعة أو المرتبطة أو وكلائك) برفع دعوى براءة اختراع، سواءً بشكل مباشر أو غير مباشر، أو كان لك مصلحة مالية مباشرة فيها، وذلك في الحالات التالية: (أ) ضد فيسبوك أو أيٍّ من شركاتها التابعة أو المرتبطة، (ب) ضد أي طرف إذا نشأت دعوى براءة الاختراع هذه كليًا أو جزئيًا عن أي برنامج أو تقنية أو منتج أو خدمة تابعة لفيسبوك أو أيٍّ من شركاتها التابعة أو المرتبطة، أو (ج) ضد أي طرف ذي صلة بالبرنامج. [...] تُعرَّف "دعوى براءة الاختراع" بأنها أي دعوى قضائية أو إجراء آخر يدّعي انتهاكًا مباشرًا أو غير مباشر أو مساهمًا في انتهاك أي براءة اختراع، أو التحريض على انتهاكها، بما في ذلك الدعوى المقابلة أو الدعوى المضادة. [ 80 ]

اعتبرت مؤسسة برمجيات أباتشي اتفاقية الترخيص هذه غير متوافقة مع سياساتها، إذ إنها "تنقل المخاطر إلى مستخدمي برامجنا بشكل غير متوازن لصالح المرخِّص، وليس المرخَّص له، مما ينتهك سياسة أباتشي القانونية المتمثلة في كونها مانحًا شاملًا"، و"ليست جزءًا من تلك الموجودة في [رخصة أباتشي 2.0]، ولا يمكن ترخيصها من الباطن بموجب [رخصة أباتشي 2.0]". [ 81 ] في أغسطس 2017، تجاهلت فيسبوك مخاوف مؤسسة أباتشي بشأن المستخدمين ورفضت إعادة النظر في ترخيصها. [ 82 ] [ 83 ] في الشهر التالي، قررت ووردبريس تحويل مشروعي غوتنبرغ وكاليبسو من رياكت. [ 84 ]

في 23 سبتمبر 2017، أعلنت فيسبوك أنها ستعيد ترخيص Flow وJest وReact وImmutable.js بموجب ترخيص MIT القياسي في الأسبوع التالي ؛ وذكرت الشركة أن React "هي أساس نظام بيئي واسع من البرمجيات مفتوحة المصدر للويب"، وأنها لا ترغب في "عرقلة التقدم لأسباب غير تقنية". [ 85 ]

في 26 سبتمبر 2017، تم إصدار React 16.0.0 بترخيص MIT. [ 86 ] كما تم تطبيق تغيير ترخيص MIT على إصدارات 15.x مع React 15.6.2. [ 87 ]

انظر أيضاً

ملحوظات

مراجع

  1. أوتشينو، توم؛ ووك، جوردان (5 أغسطس 2013). "تطبيقات جافا سكريبت على فيسبوك" . يوتيوب . مؤرشف من الأصل في 31 مايو 2022. تم الاطلاع عليه في 22 أكتوبر 2018 .
  2. "هل React مكتبة أم إطار عمل؟ إليك سبب أهمية ذلك" . freeCodeCamp.org . 2021-04-12 . تم الاطلاع عليه بتاريخ 2024-10-12 .
  3. "الإصدار 19.2.8" . 21 يوليو 2026. تم الاطلاع عليه بتاريخ 22 يوليو 2026 .
  4. "الوسوم · react/react · GitHub" . github.com . تم الاطلاع عليه بتاريخ 21-07-2026 .
  5. "ما الجديد في React 19" . مؤرشف من الأصل بتاريخ 12-05-2024 . تم الاطلاع عليه بتاريخ 12-05-2024 .
  6. 1 2 3 "React – مكتبة جافا سكريبت لبناء واجهات المستخدم" . reactjs.org . مؤرشف من الأصل في 8 أبريل 2018. تم الاطلاع عليه في 7 أبريل 2018 .
  7. الفصل الأول: ما هو React؟ - ما هو React ولماذا هو مهم [ كتاب ] . ISBN 978-1-4919-9674-4أُرشف من الأصل في 6 مايو 2023. تم الاطلاع عليه بتاريخ 6 مايو 2023 .{{cite book}}تم |website=تجاهله ( مساعدة )
  8. كريل، بول (15 مايو 2014). "رياكت: تصميم واجهات مستخدم أسرع وأكثر سلاسة لتطبيقات الويب القائمة على البيانات" . إنفوورلد . مؤرشف من الأصل في 12 يونيو 2018. تم الاطلاع عليه في 23 فبراير 2021 .
  9. هيميل، زيف (3 يونيو 2013). "مكتبة واجهات المستخدم React JavaScript من فيسبوك تتلقى آراءً متباينة" . infoq.com . مؤرشف من الأصل في 26 مايو 2022. تم الاطلاع عليه بتاريخ 11 يناير 2022 .
  10. داوسون، كريس (25 يوليو 2014). "تاريخ جافا سكريبت وكيف أدى إلى ReactJS" . ذا نيو ستاك . مؤرشف من الأصل في 6 أغسطس 2020. تم الاسترجاع في 19 يوليو 2020 .
  11. "استطلاع رأي مطوري ستاك أوفرفلو لعام 2025" . ستاك أوفرفلو . مؤرشف من الأصل بتاريخ 16 ديسمبر 2025. تم الاطلاع عليه بتاريخ 10 أكتوبر 2025 .
  12. ديري 2017 .
  13. بانشال 2022 .
  14. "إحصائيات الاستخدام وحصة السوق لـ React للمواقع الإلكترونية" . w3techs.com . 7 أكتوبر 2025. تم الاطلاع عليه في 7 أكتوبر 2025 .
  15. "مقدمة عن React" . GeeksforGeeks . 27-09-2017 . تم الاطلاع عليه بتاريخ 12-10-2024 .
  16. 1 2 3 4 5 6 7 8 9 10 11 12 فييروخ 2020 .
  17. شوارزمولر 2018 .
  18. "المكونات والخصائص" . React . فيسبوك. مؤرشف من الأصل في 7 أبريل 2018. تم الاطلاع عليه في 7 أبريل 2018 .
  19. 1 2 3 4 5 6 لارسن 2021 .
  20. ١ ٢ "مقدمة إلى الخطافات" . react.js. مؤرشف من الأصل بتاريخ ٢٠١٨-١٠-٢٥ . تم الاسترجاع بتاريخ ٢٠١٩-٠٥-٢٠ .
  21. "نظرة سريعة على الخطافات - React" . reactjs.org . مؤرشف من الأصل بتاريخ 15-03-2023 . تم الاطلاع عليه بتاريخ 08-08-2019 .
  22. "ما هي React Hooks بحق الجحيم؟" . Soshace . 16 يناير 2020. مؤرشف من الأصل في 31 مايو 2022. تم الاطلاع عليه في 24 يناير 2020 .
  23. 1 2 3 4 "استخدام خاصية State Hook - React" . reactjs.org . مؤرشف من الأصل بتاريخ 30 يوليو 2022. تم الاطلاع عليه بتاريخ 24 يناير 2020 .
  24. "استخدام خاصية Effect Hook في React" . reactjs.org . مؤرشف من الأصل بتاريخ 2022-08-01 . تم الاطلاع عليه بتاريخ 2020-01-24 .
  25. "مرجع واجهة برمجة تطبيقات Hooks - React" . reactjs.org . مؤرشف من الأصل بتاريخ 2022-08-05 . تم الاطلاع عليه بتاريخ 2020-01-24 .
  26. "قواعد الخطافات - React" . reactjs.org . مؤرشف من الأصل بتاريخ 2021-06-06 . تم الاطلاع عليه بتاريخ 2020-01-24 .
  27. "بناء خطافاتك الخاصة - React" . reactjs.org . مؤرشف من الأصل بتاريخ 17 يوليو 2022. تم الاطلاع عليه بتاريخ 24 يناير 2020 .
  28. "React Labs: ما كنا نعمل عليه - مارس 2023" . react.dev . مؤرشف من الأصل بتاريخ 26 يوليو 2023. تم الاطلاع عليه بتاريخ 23 يوليو 2023 .
  29. أبراموف، دان؛ تان، لورين؛ سافونا، جوزيف؛ ماركباغ، سيباستيان (21 ديسمبر 2020). "تقديم مكونات خادم React ذات حجم الحزمة الصفرية" . react.dev . تم الاسترجاع في 28 سبتمبر 2024 .
  30. "ترطيب" . مؤرشف من الأصل بتاريخ 16-07-2024 . تم الاطلاع عليه بتاريخ 19-06-2025 .
  31. "إتقان React Router - الدليل الشامل" . ١٢ يوليو ٢٠٢٣. مؤرشف من الأصل في ٢٦ يوليو ٢٠٢٣. تم الاطلاع عليه في ٢٦ يوليو ٢٠٢٣ .
  32. "المراجع وDOM" . مدونة React . مؤرشف من الأصل بتاريخ 2022-08-07 . تم الاطلاع عليه بتاريخ 2021-07-19 .
  33. "React: The Virtual DOM" . Codecademy . مؤرشف من الأصل بتاريخ 28-10-2021 . تم الاطلاع عليه بتاريخ 14-10-2021 .
  34. أغاروال، سانشيت (مارس 2018). "تطوير مواقع الويب الحديثة باستخدام ReactJS" (ملف PDF) . المجلة الدولية لجوانب البحث الحديثة . الصفحات 133-137 . مؤرشف (ملف PDF) من الأصل في 17 أبريل 2024. تم الاطلاع عليه في 11 ديسمبر 2024 . 
  35. "ReactDOM – React" . reactjs.org . مؤرشف من الأصل بتاريخ 2023-01-08 . تم الاطلاع عليه بتاريخ 2023-01-08 .
  36. "المصالحة - رياكت" . reactjs.org . مؤرشف من الأصل بتاريخ 2023-01-08 . تم الاطلاع عليه بتاريخ 2023-01-08 .
  37. "React.Component – ​​React" . legacy.reactjs.org . مؤرشف من الأصل بتاريخ 2024-04-09 . تم الاطلاع عليه بتاريخ 2024-04-09 .
  38. "مسودة: مواصفات JSX" . JSX . فيسبوك. 2022-03-08. مؤرشف من الأصل في 2022-04-02 . تم الاطلاع عليه في 7 أبريل 2018 .
  39. هانت، بيت (5 يونيو 2013). "لماذا أنشأنا رياكت؟ - مدونة رياكت" . reactjs.org . مؤرشف من الأصل في 6 أبريل 2015. تم الاطلاع عليه في 17 فبراير 2022 .
  40. "PayPal Isomorphic React" . medium.com . 27-04-2015. مؤرشف من الأصل في 08-02-2019 . تم الاطلاع عليه في 08-02-2019 .
  41. "Netflix Isomorphic React" . netflixtechblog.com . 28 يناير 2015. مؤرشف من الأصل في 17 ديسمبر 2016. تم الاطلاع عليه في 14 فبراير 2022 .
  42. "عرض الصفحات من جانب الخادم (SSR) - مسرد مصطلحات MDN Web Docs" . MDN Web Docs . موزيلا . تم الاطلاع عليه بتاريخ 7 مارس 2025 .
  43. "العرض على الويب" . web.dev . جوجل. 6 فبراير 2019. تم الاطلاع عليه في 7 مارس 2025 .
  44. 1 2 جاين، أتيشاي (10 نوفمبر 2018). "التخزين المؤقت للعرض في React" . CSS-Tricks . تم الاسترجاع في 7 مارس 2025 .
  45. "واجهات برمجة تطبيقات React DOM للخادم" . وثائق React . منصات Meta . تم الاطلاع عليه في 7 مارس 2025 .
  46. "العرض (وثائق Next.js)" . وثائق Next.js. فيرسيل . تم الاطلاع عليه في 7 مارس 2025 .
  47. "نظرة عامة معمقة" . فلوكس . فيسبوك. مؤرشف من الأصل في 7 أغسطس 2022. تم الاطلاع عليه في 7 أبريل 2018 .
  48. "إصدار Flux 4.0" . جيت هاب . مؤرشف من الأصل في 31 مايو 2022. تم الاطلاع عليه في 26 فبراير 2021 .
  49. جونسون، نيكولاس. "مقدمة إلى فلكس - تمرين رياكت" . نيكولاس جونسون . مؤرشف من الأصل في 31 مايو 2022. تم الاسترجاع في 7 أبريل 2018 .
  50. أبراموف، دان. "تاريخ React وFlux مع دان أبراموف" . Three Devs and a Maybe . مؤرشف من الأصل في 19 أبريل 2018. تم الاطلاع عليه في 7 أبريل 2018 .
  51. "أدوات إدارة الحالة - النتائج" . حالة جافا سكريبت . مؤرشف من الأصل في 31 مايو 2022. تم الاطلاع عليه في 29 أكتوبر 2021 .
  52. "React v16.8: الإصدار المزود بالخطافات" . مؤرشف من الأصل بتاريخ 2023-01-08 . تم الاطلاع عليه بتاريخ 2023-01-08 .
  53. "React.js: الفيلم الوثائقي" . يوتيوب . هوني بوت. ١٠ فبراير ٢٠٢٣. مؤرشف من الأصل في ١٩ يناير ٢٠٢٤. تم الاطلاع عليه في ٢٧ مايو ٢٠٢٤ .
  54. لوبيز، مارني (13 مايو 2024). "لماذا يُستخدم React على نطاق واسع من قِبل مطوري الويب؟" . ديفلان . مؤرشف من الأصل في 20 يونيو 2024. تم الاطلاع عليه في 11 ديسمبر 2024 .
  55. لاردينويس 2017 .
  56. "معمارية React Fiber" . جيت هاب . مؤرشف من الأصل في 10 مايو 2018. تم الاطلاع عليه في 19 أبريل 2017 .
  57. «فيسبوك تعلن عن React Fiber، وهي إعادة كتابة لإطار عمل React الخاص بها» . TechCrunch . ١٨ أبريل ٢٠١٧. مؤرشف من الأصل في ١٤ يونيو ٢٠١٨. تم الاطلاع عليه في ١٩ أكتوبر ٢٠١٨ .
  58. "GitHub – acdlite/react-fiber-architecture: وصف لخوارزمية React الأساسية الجديدة، React Fiber" . github.com . مؤرشف من الأصل بتاريخ 10 مايو 2018. تم الاطلاع عليه بتاريخ 19 أكتوبر 2018 .
  59. "React v16.0" . react.js. 2017-09-26. مؤرشف من الأصل في 2017-10-03 . تم الاطلاع عليه في 2019-05-20 .
  60. "React v16.0 – مدونة React" . legacy.reactjs.org . تم الاطلاع عليه بتاريخ 15-10-2025 .
  61. "React v17.0 Release Candidate: No New Features – React Blog" . legacy.reactjs.org . Reteved 2026-05-25 .
  62. "React 18" . React . تم الاطلاع عليه بتاريخ 7 ديسمبر 2024 .
  63. "كيفية الترقية إلى React 18 - React" . react.dev . تم الاطلاع عليه بتاريخ 14-11-2025 .
  64. "React 19" . React . تم الاطلاع عليه بتاريخ 7 ديسمبر 2024 .
  65. «ستنقل شركة ميتا شركة رياكت إلى مؤسسة لينكس لمعالجة مخاوف هيمنة الموردين» . ذا ريجستر . 9 أكتوبر 2025.
  66. «مؤسسة لينكس تعلن عن تأسيس مؤسسة رياكت» . مؤسسة لينكس . 24 فبراير 2026. تاريخ الاطلاع: 25 فبراير 2026 .
  67. "تفاصيل CVE-2025-55182 على موقع قاعدة بيانات الثغرات الأمنية الوطنية" . تم الاطلاع عليه بتاريخ 2025-12-05 .
  68. تولاس، بيل. "ثغرة خطيرة في React وNext.js تسمح للمخترقين بتنفيذ تعليمات برمجية على الخوادم" . BleepingComputer . تم الاطلاع عليه بتاريخ 5 ديسمبر 2025 .
  69. "ثغرة أمنية خطيرة في مكونات خادم React على موقع react.dev الإلكتروني" . تم الاطلاع عليه بتاريخ 2025-12-05 .
  70. "هجمات حجب الخدمة وكشف شفرة المصدر في مكونات خادم React" . react.dev . تم الاطلاع عليه بتاريخ 15-12-2025 .
  71. "تفاصيل CVE-2025-55184 - قاعدة بيانات الثغرات الأمنية الوطنية " . المعهد الوطني للمعايير والتكنولوجيا . تم الاطلاع بتاريخ 15 ديسمبر 2025 .
  72. "تفاصيل CVE-2025-55183 - قاعدة بيانات الثغرات الأمنية الوطنية " . المعهد الوطني للمعايير والتكنولوجيا . تاريخ الاسترجاع: 15 ديسمبر 2025 .
  73. "تفاصيل CVE-2025-67779 - قاعدة بيانات الثغرات الأمنية الوطنية " . المعهد الوطني للمعايير والتكنولوجيا . تم الاطلاع بتاريخ 15 ديسمبر 2025 .
  74. ليونز، جيسيكا (12 ديسمبر 2025). "ثغرات جديدة في React تُسرّب أسرارًا وتُسهّل هجمات حجب الخدمة" . ذا ريجستر . تاريخ الاسترجاع: 15 ديسمبر 2025 .
  75. "هجمات حجب الخدمة وكشف شفرة المصدر في مكونات خادم React" . react.dev . تم الاطلاع عليه بتاريخ 15-12-2025 .
  76. "React v18.0" . reactjs.org . مؤرشف من الأصل بتاريخ 29-03-2022 . تم الاطلاع عليه بتاريخ 12-04-2022 .
  77. "React CHANGELOG.md" . GitHub . مؤرشف من الأصل بتاريخ 28-04-2020 . تم الاطلاع عليه بتاريخ 09-12-2015 .
  78. ليو، أوستن. "سبب مقنع لعدم استخدام ReactJS" . ميديوم . مؤرشف من الأصل بتاريخ 31 مايو 2022. تم الاطلاع عليه بتاريخ 9 ديسمبر 2015 .
  79. "تحديث منحة براءة الاختراع الخاصة بنا للمصادر المفتوحة" . مؤرشف من الأصل بتاريخ 2020-11-08 . تم الاطلاع عليه بتاريخ 2015-12-09 .
  80. "منحة إضافية لحقوق براءات الاختراع، الإصدار 2" . جيت هاب . مؤرشف من الأصل بتاريخ 31 مايو 2022. تم الاطلاع عليه بتاريخ 9 ديسمبر 2015 .
  81. "الأسئلة القانونية السابقة لمؤسسة برمجيات أباتشي" . مؤسسة برمجيات أباتشي. مؤرشف من الأصل بتاريخ 2018-02-06 . تم الاطلاع عليه بتاريخ 2017-07-16 .
  82. "شرح ترخيص React" . فيسبوك . مؤرشف من الأصل بتاريخ 2021-05-06 . تم الاطلاع عليه بتاريخ 2017-08-18 .
  83. «يُرجى النظر في إعادة الترخيص إلى AL v2.0، كما فعلت RocksDB مؤخرًا» . جيت هاب . مؤرشف من الأصل بتاريخ 27 يوليو 2022. تم الاطلاع عليه بتاريخ 18 أغسطس 2017 .
  84. "ووردبريس تتخلى عن مكتبة React بسبب خطر بند براءة اختراع فيسبوك" . TechCrunch . 15 سبتمبر 2017. مؤرشف من الأصل في 31 مايو 2022. تم الاطلاع عليه في 16 سبتمبر 2017 .
  85. "إعادة ترخيص React وJest وFlow وImmutable.js" . كود فيسبوك . 23 سبتمبر 2017. مؤرشف من الأصل في 6 ديسمبر 2020. تم الاطلاع عليه في 23 سبتمبر 2017 .
  86. كلارك، أندرو (26 سبتمبر 2017). "React v16.0 مرخص بموجب ترخيص MIT" . مدونة React . مؤرشف من الأصل في 3 أكتوبر 2017. تم الاطلاع عليه في 18 أكتوبر 2017 .
  87. هانزاكر، ناثان (25 سبتمبر 2017). "React v15.6.2" . مدونة React . مؤرشف من الأصل في 31 مايو 2022. تم الاطلاع عليه في 18 أكتوبر 2017 .

فهرس