ری‌اکت

ری‌اکت ، یک کتابخانه متن‌باز جاوا اسکریپت برای ساخت رابط‌های کاربری و اجزای(Component) صفحات وب است. ری‌اکت در دو نسخه ری‌اکت جی اس  و ری‌اکت نیتیو  ارائه شده‌است. ری‌اکت جی اس برای دسکتاپ و ری‌اکت نیتیو برای طراحی برنامه‌های موبایل می‌باشد. از دیگر کتابخانه‌های مشابه می‌توان به Angular و Vue اشاره کرد. این کتابخانه‌های جاوااسکرپت با هدف ساختن صفحات وب در صفحه مرورگر مقصد به جای ساخته شدن صفحات در سمت سرور تولید شده‌اند. بدین مفهوم که پس از ارتباط اولیه کلاینت با سرور، ابتدا این کتابخانه‌ها بر روی کلاینت بارگزاری می‌شوند و سپس از طریق ارتباط با API محتوای متغیر درون صفحه به صورت جداگانه بارگیری شده و صفحه وب در سمت مقصد سرهم می‌شود.

درست شدن صفحات وب در سمت مقصد با این روش این امکان را فراهم می‌کند که بتوان برنامه‌هایی با سرعت بالا و پر قدرت برای صفحات نوشت که در گذشته امکان‌پذیر نبود.

این کتابخانه توسط فیس‌بوک و جامعه‌ای از توسعه‌دهندگان و شرکت‌ها به صورت انفرادی توسعه و نگه‌داری می‌شوند. براساس آنالیزهای جاوااسکریپت سرویس لیبسکور، ری‌اکت در حال حاضر در سایت‌های نت‌فلیکس، ایمجر، بلیچر رپورت، فیدلی، ایر بی‌ان‌بی و … مورد استفاده قرار می‌گیرد.

به دلیل بهینه بودن ری‌اکت برای دریافت اطلاعاتی که با سرعت تغییر می‌کنند، می‌توان از آن برای توسعه برنامه تک‌صفحه‌ای(SPA) یا برنامه‌های موبایل استفاده کرد. هرچند دریافت اطلاعات، ابتدایی‌ترین بخش در یک صفحهٔ وب است و برنامه‌های پیچیده ری‌اکت معمولاً به کتابخانه‌های اضافه‌ای برای مدیریت وضعیت  , مسیریابی (URL mapping)، و اتصال به رابط برنامه‌نویسی کاربردی (API) نیاز دارند.

ری‌اکت و ری‌اکت نیتیو از جمله پروژه‌های متن‌باز شرکت فیس‌بوک هستند که در صدر محبوب‌ترین پروژه‌های وبگاه گیت‌هاب قرار دارند.

ری اکت (reactjs) اساساً یک کتابخانه open-source جاوا اسکریپتی برای ساخت رابط کاربری(user interfaces) برای single page applications(اپلیکیشن‌های تک‌صفحه‌ای) است. این کتابخانه برای مدیریت لایه View برای وب استفاده می‌شود. همچنین React این امکان رو در اختیار ما می‌گذارد که reusable UI components(کامپوننت‌های قابل استفاده مجدد رابط کاربری) را ایجاد کنیم.React در ابتدا توسط Jordan Walke یکی از مهندسین ارشد فیسبوک ایجاد شد.React ابتدا در سال ۲۰۱۱ در فیسبوک مورد استفاده قرار گرفت و سپس در سال ۲۰۱۲ در اینستاگرام استفاده شد.

ری اکت این امکان را در اختیار توسعه دهندگان می‌گذارد که وب اپلیکیشن‌های بسیار بزرگ که می‌تواند date را تغییر بدهد، بدون reload صفحه ایجاد کنند. مهم‌ترین اهداف React را می‌توان سادگی، سرعت و مقیاس‌پذیر بودن دانست. تمرکز اصلی React بر روی رابط کاربری است و فقط در لایه View در معماری MVC مطابقت دارد. این کتابخانه می‌تواند با کتابخانه‌های و فریمورک‌های دیگر جاوا اسکریپت مثل Angular ترکیب و مورد استفاده قرار گیرد.

تاریخچه 
ری‌اکت توسط جردن واک، یک مهندس نرم‌افزار در فیس‌بوک، ساخته شده‌است. او از XHP که یک چارچوب فریم‌ورک HTML برای PHP است، تأثیر گرفته‌است. اولین نسخه‌ای که او در سال ۲۰۱۱ توسعه داد در بخش اخبار فیس‌بوک و بعدها در سال ۲۰۱۲ در سرویس اینستاگرام مورد استفاده قرار گرفت. در سال ۲۰۱۳ در جریان کنفرانس آمریکا JSConf این کتابخانه متن‌باز اعلام شد.

ReactNative، که امکان توسعه برنامه‌های مبتنی بر Android, IOS و UWP را با React فراهم می‌کند، در فوریه ۲۰۱۵ در React.js Conf فیسبوک معرفی شد و در مارس ۲۰۱۵ به صورت رایگان عرضه شد.

در ۱۸ آوریل ۲۰۱۷ فیسبوک اعلام کرد React Fiber، یک الگوریتم اصلی جدید React library برای ایجاد رابط کاربری است. React Fiber پایه و اساس هرگونه پیشرفت‌های آینده و ویژگی‌های چارچوب React خواهد بود.

ویژگی‌های قابل توجه

جریان داده‌ای یک سویه

DOM مجازی 
وقتی صفحه وبی بارگذاری می‌شود مرورگر یک مدل شی گرا از المان‌های موجود در صفحه می‌سازد. این مدل Dom یا Document Object Model نام دارد. این نمودار یک نمودار درختی از اشیا موجود در صفحه است. برنامه‌هایی مانند جاوااسکریپت با استفاده از این مدل یک صفحه Html را به صورت پویا ایجاد می‌کنند.

در تکنولوژیReact.js از مفهومی به نام Dom مجازی (Virtual DOM) استفاده می‌شود و به این صورت کار می‌کند که برای هر شی Dom که ویژگی جدیدی قرار است برای آن ساخته شود نیازی نیست که آن شی دوباره ساخته شود بلکه تنها نیاز است که آن ویژگی مورد نظر را تغییر داد یا افزود.

جی‌اس‌ایکس (JSX) 
جی‌اس‌ایکس یک نسخه گسترش یافته از جاوااسکریپت است که این امکان را می‌دهد تا بتوان در کنار کدهای جاوااسکریپت از کدهای اچ‌تی‌ام‌ال نیز بهره برد که به موجب آن کامپوننت‌های ری‌اکت معمولاً در قالب جی‌اس‌ایکس نوشته می‌شوند. همچنین ممکن است توسعه دهندگان تنها از جاوااسکریپت خالص استفاده کنند. جی‌اس‌ایکس مشابه XHP در PHP است.

معماری فراتر از HTML

ری‌اکت نیتیو(React Native) 
ری‌اکت نیتیو یک فریم‌ورک جاواسکریپت است که برای طراحی برنامه‌های بومی موبایل و برای سیستم عامل‌های اندروید و iOS ساخته شده‌است. React Native بر پایهٔ کتاب‌خانهٔ جاوا اسکریپت فیسبوک یعنی همان ReactJs ساخته شده‌است، اما به‌جای هدف قرار دادن مرورگر، این‌بار پلتفرم‌های موبایل را مورد هدف قرار داده‌است.

به‌عبارتی حالا توسعه دهندههای وب می‌توانند برنامه‌هایی برای موبایل بنویسند که کاملاً بومی یا اپلیکیشن نیتیو به نظر برسند و همگی از کتابخانه React نوشته شده باشند.

برخی از اپلیکیشن‌هایی که با ری‌اکت نیتیو ساخته شده‌اند:Instagram - Facebook - Facebook Ads Manager - f8 - Skype , ...

آینده توسعه 
وضعیت توسعه پروژه را می‌توان در انجمن تیم اصلی توسعه دهندگان آن دنبال کرد. هرچند تغییرات جزئی، مشکلات و درخواست ادغام آن در مخزن آینده ری‌اکت(Feture of React) دنبال می‌شوند.

پروژه‌های زیرمجموعه 
وضعیت پروژه‌های زیرمجموعه ری‌اکت در صفحه ویکی آن قابل مشاهده است.

ری اکت جی‌اس یکی از کتاب‌خانه‌های جاوا اسکریپت است، اما React Native یکی از فریمورک‌های جاوا اسکریپت است که از React Js استفاده می‌کند.

برای توسعه اپلیکیشن‌های سیستم عامل اندروید از زبان جاوا و برای توسعه اپلیکیشن‌های سیستم عامل iOS از زبان سوییفت (Swift) استفاده می‌شود. در حالی‌که React Native می‌تواند در توسعه هر دو سیستم عامل مورد استفاده قرار گیرد.

توافق‌نامه مجوز مؤلف فیس‌بوک 
فیس‌بوک مشارکت کنندگان ری‌اکت را مجاب به پذیرش توافق‌نامه مجوز مؤلف می‌داند.

نصب ReactJS 
به ۳ روش امکان نصب ری اکت جی اس وجود دارد اما بهترین راه استفاده از بسته create-react-app است که به راحتی توسط npm قابل نصب می‌باشد.

برای نصب و استفاده مراحل زیر توسط npm انجام می‌شود:

npm install -g create-react-app
create-react-app my-app

cd my-app
npm start

اصطلاحات رایج 
ری اکت تلاش نمی‌کند یک کتابخانه کامل ارائه بدهد. بلکه به‌طور خاص برای ساخت رابط‌های کاربری طراحی شده‌است.

پروانه نرم‌افزاری

پانویس 

ای‌جکس
برنامه‌های کاربردی وب
چارچوب‌های نرم‌افزاری اینترنت
کتابخانه‌های جاوااسکریپت
نرم‌افزارهای ۲۰۱۵ (میلادی)
نرم‌افزارهای دارای اجازه‌نامه ام‌آی‌تی
نرم‌افزارهایی که از پروانه بی‌اس‌دی استفاده می‌کنند
ویکی‌سازی رباتیک