logo by @sawaratsuki1004
React
v19.2
Learn
Reference
Community
Blog
logo by @sawaratsuki1004

React

مكتبة بناء واجهات الويب والتطبيقات الأصلية

تعلم Reactمرجع API

أنشئ واجهات المستخدم من Components

تتيح لك React بناء واجهات المستخدم من أجزاء فردية تسمى components. أنشئ components React الخاصة بك مثل Thumbnail و LikeButton و Video. ثم ادمجها في شاشات كاملة وصفحات وتطبيقات.

Video.js

function Video({ video }) { return ( <div> <Thumbnail video={video} /> <a href={video.url}> <h3>{video.title}</h3> <p>{video.description}</p> </a> <LikeButton video={video} /> </div> ); }

My video

Video description

سواء كنت تعمل بمفردك أو مع آلاف المطورين الآخرين، استخدام React يبدو نفسه. تم تصميمها لتسمح لك بدمج components مكتوبة بسلاسة من قبل أشخاص مستقلين وفرق ومنظمات.

اكتب Components باستخدام الكود والترميز

React components هي دوال JavaScript. تريد إظهار محتوى بشكل شرطي؟ استخدم عبارة if. تعرض قائمة؟ جرب map() للمصفوفة. تعلم React هو تعلم البرمجة.

VideoList.js

function VideoList({ videos, emptyHeading }) { const count = videos.length; let heading = emptyHeading; if (count > 0) { const noun = count > 1 ? 'Videos' : 'Video'; heading = count + ' ' + noun; } return ( <section> <h2>{heading}</h2> {videos.map(video => <Video key={video.id} video={video} /> )} </section> ); }

3 Videos

First video

Video description

Second video

Video description

Third video

Video description

صيغة الترميز هذه تسمى JSX. إنها امتداد لصيغة JavaScript شاع بواسطة React. وضع ترميز JSX بالقرب من منطق العرض ذي الصلة يجعل React components سهلة الإنشاء والصيانة والحذف.

أضف التفاعلية حيثما تحتاجها

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

SearchableVideoList.js

import { useState } from 'react'; function SearchableVideoList({ videos }) { const [searchText, setSearchText] = useState(''); const foundVideos = filterVideos(videos, searchText); return ( <> <SearchInput value={searchText} onChange={newText => setSearchText(newText)} /> <VideoList videos={foundVideos} emptyHeading={`No matches for “${searchText}”`} /> </> ); }

example.com/videos.html

React Videos

A brief history of React

5 Videos

React: The Documentary

The origin story of React

Rethinking Best Practices

Pete Hunt (2013)

Introducing React Native

Tom Occhino (2015)

Introducing React Hooks

Sophie Alpert and Dan Abramov (2018)

Introducing Server Components

Dan Abramov and Lauren Tan (2020)

ليس عليك بناء صفحتك بأكملها في React. أضف React إلى صفحة HTML الحالية، واعرض مكونات React التفاعلية في أي مكان فيها.

أضف React إلى صفحتك

انتقل إلى full-stack
باستخدام framework

React هي مكتبة. تتيح لك تجميع المكونات معًا، لكنها لا تفرض كيفية القيام بالتوجيه وجلب البيانات. لبناء تطبيق كامل باستخدام React، نوصي بإطار عمل React متكامل مثل Next.js أو React Router.

confs/[slug].js

import { db } from './database.js'; import { Suspense } from 'react'; async function ConferencePage({ slug }) { const conf = await db.Confs.find({ slug }); return ( <ConferenceLayout conf={conf}> <Suspense fallback={<TalksLoading />}> <Talks confId={conf.id} /> </Suspense> </ConferenceLayout> ); } async function Talks({ confId }) { const talks = await db.Talks.findAll({ confId }); const videos = talks.map(talk => talk.video); return <SearchableVideoList videos={videos} />; }

example.com/confs/react-conf-2021

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

Get started with a framework

استخدم الأفضل من كل منصة

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

example.com

ابق وفيا للويب

يتوقع الناس تحميل صفحات تطبيقات الويب بسرعة. على الخادم، تتيح لك React بدء بث HTML أثناء جلب البيانات، مع ملء المحتوى المتبقي تدريجيًا قبل تحميل أي كود JavaScript. على العميل، يمكن لـ React استخدام واجهات برمجة تطبيقات الويب القياسية للحفاظ على استجابة واجهة المستخدم حتى في منتصف العرض.

1:10 PM

انطلق نحو الأصالة الحقيقية

يتوقع الناس أن تبدو التطبيقات الأصلية وتشعر وكأنها جزء من منصتهم. React Native و Expo تتيح لك بناء تطبيقات في React لأنظمة Android و iOS والمزيد. تبدو وتشعر بأنها أصلية لأن واجهاتها هي أصلية بالفعل. إنها ليست عرض ويب - مكونات React الخاصة بك تعرض عروض Android و iOS حقيقية مقدمة من المنصة.

مع React، يمكنك أن تكون مطور ويب و مطور تطبيقات أصلية. يمكن لفريقك الشحن إلى العديد من المنصات دون التضحية بـ تجربة المستخدم. يمكن لمؤسستك سد فجوات المنصات، و تشكيل فرق تمتلك ميزات كاملة من البداية إلى النهاية.

أنشئ للمنصات الأصلية

قم بالترقية عندما يكون المستقبل جاهزًا

تتعامل React مع التغييرات بعناية. يتم اختبار كل commit لـ React على أسطح حرجة للأعمال مع أكثر من مليار مستخدم. أكثر من 100,000 مكون React في Meta تساعد في التحقق من صحة كل استراتيجية ترحيل.

يبحث فريق React دائمًا عن كيفية تحسين React. بعض الأبحاث تستغرق سنوات لتؤتي ثمارها. لدى React معايير عالية لتحويل فكرة بحثية إلى إنتاج. فقط الأساليب المثبتة تصبح جزءًا من React.

اقرأ المزيد من أخبار React

آخر أخبار React

React Conf 2025 Recap

October 16, 2025

React Compiler v1.0

October 7, 2025

Introducing the React Foundation

October 7, 2025

React 19.2

October 1, 2025
اقرأ المزيد من أخبار React

انضم إلى مجتمع
من الملايين

أنت لست وحدك. يزور مليونا مطور من جميع أنحاء العالم وثائق React كل شهر. React هي شيء يمكن للأشخاص والفرق الاتفاق عليه.

People singing karaoke at React Conf
Sunil Pai speaking at React India
A hallway conversation between two people at React Conf
A hallway conversation at React India
Elizabet Oliveira speaking at React Conf
People taking a group selfie at React India
Nat Alison speaking at React Conf
Organizers greeting attendees at React India
People singing karaoke at React Conf
Sunil Pai speaking at React India
A hallway conversation between two people at React Conf
A hallway conversation at React India
Elizabet Oliveira speaking at React Conf
People taking a group selfie at React India
Nat Alison speaking at React Conf
Organizers greeting attendees at React India

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

logo by @sawaratsuki1004

مرحباً بك في
مجتمع React

ابدأ الآن
Copyright © Meta Platforms, Inc
no uwu plz
uwu?
Logo by@sawaratsuki1004
تعلم React
بداية سريعة
التثبيت
وصف واجهة المستخدم (UI)
إضافة التفاعلية
إدارة State
مخارج الطوارئ
مرجع API
React APIs
React DOM APIs
المجتمع
ميثاق السلوك
تعرف على الفريق
المساهمون في التوثيق
شكر وتقدير
المزيد
المدونة
React Native
الخصوصية
الشروط
function Video({ video }) {
return (
<div>
<Thumbnail video={video} />
<a href={video.url}>
<h3>{video.title}</h3>
<p>{video.description}</p>
</a>
<LikeButton video={video} />
</div>
);
}
function VideoList({ videos, emptyHeading }) {
const count = videos.length;
let heading = emptyHeading;
if (count > 0) {
const noun = count > 1 ? 'Videos' : 'Video';
heading = count + ' ' + noun;
}
return (
<section>
<h2>{heading}</h2>
{videos.map(video =>
<Video key={video.id} video={video} />
)}
</section>
);
}
import { useState } from 'react';

function SearchableVideoList({ videos }) {
const [searchText, setSearchText] = useState('');
const foundVideos = filterVideos(videos, searchText);
return (
<>
<SearchInput
value={searchText}
onChange={newText => setSearchText(newText)} />
<VideoList
videos={foundVideos}
emptyHeading={`No matches for “${searchText}”`} />
</>
);
}
import { db } from './database.js';
import { Suspense } from 'react';

async function ConferencePage({ slug }) {
const conf = await db.Confs.find({ slug });
return (
<ConferenceLayout conf={conf}>
<Suspense fallback={<TalksLoading />}>
<Talks confId={conf.id} />
</Suspense>
</ConferenceLayout>
);
}

async function Talks({ confId }) {
const talks = await db.Talks.findAll({ confId });
const videos = talks.map(talk => talk.video);
return <SearchableVideoList videos={videos} />;
}

19 Videos

React Conf

React 18 Keynote

The React Team

React Conf

React 18 for App Developers

Shruti Kapoor

React Conf

Streaming Server Rendering with Suspense

Shaundai Person

React Conf

The First React Working Group

Aakansha Doshi

React Conf

React Developer Tooling

Brian Vaughn

React Conf

React without memo

Xuan Huang (黄玄)

React Conf

React Docs Keynote

Rachel Nabors

React Conf

Things I Learnt from the New React Docs

Debbie O'Brien

React Conf

Learning in the Browser

Sarah Rainsberger

React Conf

The ROI of Designing with React

Linton Ye

React Conf

Interactive Playgrounds with React

Delba de Oliveira

React Conf

Re-introducing Relay

Robert Balicki

React Conf

React Native Desktop

Eric Rozell and Steven Moyes

React Conf

On-device Machine Learning for React Native

Roman Rädle

React Conf

React 18 for External Store Libraries

Daishi Kato

React Conf

Building Accessible Components with React 18

Diego Haz

React Conf

Accessible Japanese Form Components with React

Tafu Nakazaki

React Conf

UI Tools for Artists

Lyle Troxell

React Conf

Hydrogen + React 18

Helen Lin